HTMLのセマンティクスと関連するフロントエンドフレームワークの詳細分析
セマンティクスについて
意味論は、記号やシンボルと、それらが表す意味との関係を研究する学問です。言語学では、これらの記号(単語、フレーズ、音など)が言語において持つ意味に焦点を当てます。一方、フロントエンド開発の分野では、HTMLの要素、属性、属性値(Microdataなどの拡張を含む)に対して合意された意味を主に扱います。このように正式に合意されたセマンティクスは、一般に仕様書として使用され、プログラム(後に開発に携わる人々)がサイトの様々な側面に関する情報をより理解するのに役立ちます。しかし、これらの要素、属性、プロパティ値のセマンティクスが形式化されていても、開発者の適応度や一般的な選択の対象になることは変わりません。このため、形式的な規約のセマンティクスも将来的に変更される可能性がある(これはHTMLの設計原則の1つである)。
HTMLセマンティクスの種類を区別する
セマンティックなHTMLを書くという原則を守ることは、現代のプロフェッショナルなフロントエンド開発の基礎の1つです。セマンティックのほとんどは、現在または予想されるコンテンツの性質に関連しています(例:h1要素、lang属性、type属性のメール値、Microdataなど)。
しかし、すべてのセマンティクスがコンテンツ指向である必要はない。クラス名は、意味的に無意味なものであってはならない。どのような名前を使うにしても、意味と目的を持たなければなりません。クラス名のセマンティクスは、HTML要素のセマンティクスとは異なる場合があります。HTML要素、特定のHTML属性、Microdataなどの"global"セマンティクスを利用し、サイトやアプリケーションの"local"固有のセマンティクス(通常class属性などの属性値に含まれる)を利用して区別することが可能です。
を使用していますが のセクションでは、HTML5仕様のclass属性である この推定される "ベストプラクティス" の class 属性に関するセクションで繰り返し述べられています。
...開発者は、表示されることが期待される内容を記述するのではなく、実際の内容を記述するために class 属性値を使用することを推奨しています。
...そうしなければならない理由は、本来はないのです。実際、この方法を大規模なサイトやアプリケーションで使用する場合、しばしば障害となることがあります。
より良い方法は、デザインパターンの構造と機能からクラス名のセマンティクスを抽出することである。コンテンツに依存しないクラス名を持つコンポーネントは、より再利用しやすくなります。
- .btn { /* スタイル */ }.
- .uilist { /* styles */ }.
- .uilist-item { /* styles */ }.
- <スパン < ナビ クラス = "uilist"。 > <スパン
- <スパン < a クラス = uilist-item"。 ホールド = "#" > ホーム <スパン </ a >
- <スパン < a クラス = uilist-item"。 ホールド = "#" > について </ a >
- <スパン < スパン <スパン クラス = uilist-item"。 >
- <スパン < a クラス = "btn"。 ホールド = "#" > <スパン ログイン <スパン </ a >
- <スパン </ スパン <スパン >
- <スパン </ ナビ >
また、必要に応じて、コンテキストをコンポーネントに適合させることも容易である。他のコンポーネントに表示されるbtnの詳細を微調整したい場合があります。
私は、ある構造を抽象的なテンプレートとして扱い、他の構造をより明示的なコンポーネント(多くの場合、テンプレートの上に構築される)として扱っています。しかし、この区別は必ずしも必要ではありません。
モジュール化された拡張可能なCSSについて議論すると、ファイルサイズやquot;bloat"に関する懸念が浮上します。 ニコル・サリバンの発言 は、ファイルサイズの保存(とメンテナンス性の向上)についてよく言及し、このアプローチを採用したFacebookなどの企業の経験について触れています。さらに、私の前処理された出力に対するHTTP圧縮の効果や、HTMLクラスを多用して行ったことを紹介しようと思いました。
Twitter Bootstrapが初めて登場したとき、私はコンパイルされたCSSを書き直して、手動で操作したファイルとのサイズ比較をより良くしました。すべてのファイルを最小化した後、手動で操作した CSS ファイルは、プリプロセッサの出力よりも 10% 小さくなりました。しかし、すべてのファイルを gzip で圧縮すると、プリプロセッサで出力された CSS ファイルは手動で出力されたものより 5 % 小さくなりました。
これは、HTTP圧縮後のファイルサイズを比較することの重要性を強調するもので、ファイルサイズの減少がすべてを物語っているわけではありません。これは、経験豊富な CSS 開発者がプリプロセッサを使用する場合、HTTP 圧縮後のファイルサイズが小さくなるため、コンパイルされた CSS にある程度の繰り返しがあっても、あまり気にする必要がないことを示唆しています。プリプロセッサによって保守性の高い CSS コードが処理されることのメリットは、生の CSS と圧縮後の CSS の美観やファイルサイズに関する懸念よりも大きいのです。
別の実験では、60KBのHTMLファイル(多くの再利用可能なコンポーネントで構成)をワイヤーから取り出し、そのクラス属性をひとつひとつ削除しました。元のファイルと剥がしたファイルの両方をgzipで圧縮すると、それぞれ7.6KBと6KBになり、その差はわずか1.6KBでした。classの自由な使用による実際のファイルサイズの結果は、もはや強調するほどのものではありません。
関連
-
HTML+cssのボックスモデル例(円、半円など)「border-radius」使いやすい
-
html+css 充電水滴の融合効果コード
-
htmlのpost requestにおけるaタグの2つの使い方を説明します。
-
テキストボックスのHTML実装は、内容だけを読み取って変更することはできない
-
iframe適応型におけるWebレスポンシブレイアウト
-
HTMLのスクロールバーについて/スクロールバーの削除について
-
HTMLページでjs、cssファイルのキャッシュを自動でクリーンアップ(バージョン番号を自動で付与)。
-
Html,sHtml,XHtml差分解析まとめ
-
テーブルの枠線/セルの区切り線を非表示にする方法
-
htmlタグのIDは変数にすることができます
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン