ホームページ > 記事 > ウェブフロントエンド > 一度に完全なパッケージ化: エンジニアが最も必要とするフロントエンド開発ガイドの大幅な補足_html/css_WEB-ITnose
セマンティクス
HTML5 は、コンテンツを正確に記述するために設計された多くのセマンティクス要素を提供します。豊富な語彙をぜひ活用してください。
使用している要素のセマンティクスを理解する必要があります。意味要素を間違った方法で使用することは、中立を保つことよりも悪いです。
シンプル
コードはシンプルにしてください。古い XHTML の習慣は忘れてください。
アクセシビリティ
アクセシビリティは後付けで考えるべきではありません。 Web サイトを改善するには、WCAG の専門家である必要はありません。次のようないくつかの小さな問題を修正することで、大きな違いを生むことができます。
1. alt 属性の正しい使用方法を学ぶ
2. リンクを確認するマークアップ (
3. 情報を伝えるために色のみに依存しないでください
4. フォーム コントロールに明確にラベルを付けます
言語
言語と文字を定義するときエンコーディングはオプションです。HTTP ヘッダーですでに指定されている場合でも、ドキュメント レベルで両方を宣言することを常にお勧めします。他の文字エンコーディングよりも UTF-8 を優先します。
パフォーマンス
コンテンツの前にスクリプトをロードする正当な理由がない限り、ページのレンダリングをブロックしないでください。スタイルシートが重い場合は、最初に絶対に必要なスタイルを分離し、別のスタイルシートでの 2 番目の宣言の読み込みを延期します。 2 つの HTTP リクエストは 1 つよりも明らかに遅いですが、体感速度が最も重要な要素です。
セミコロン
セミコロンは技術的には CSS の区切り文字ですが、常に終了文字として扱う必要があります。
ボックス モデルはドキュメント全体で同じであることが望ましいです。 Global * { box-sizing: border-box; } は便利ですが、できる限りデフォルトのボックス モデルの特定の要素を変更しないでください。
要素のデフォルトの動作は、できる限り変更しないでください。要素は可能な限り自然なドキュメント フロー内に保持されます。たとえば、デフォルトの表示を変更せずに画像の下のスペースを削除します。
同様に、要素のフローは、できる限り閉じないでください。
配置
CSS で要素を配置する方法はたくさんありますが、次のプロパティ/値を制限するようにしてください。優先順位:
セレクター
DOM に緊密に結合されているセレクターを最小限に抑えます。セレクターに 3 つを超える構造疑似クラス、子孫、または兄弟セレクターがある場合は、一致させる要素にクラスを追加することを検討してください。
必要のない場合は、セレクターのオーバーロードを避けてください。
具体性
値とセレクターをオーバーライドするのが難しくしないでください。 ID は慎重に使用し、! important は避けてください。
オーバーライド
スタイルをオーバーライドすると、セレクターとデバッグが困難になります。可能であれば、スタイルをオーバーライドすることは避けてください。
継承
継承できるスタイル宣言を繰り返さないでください。
シンプル
コードはシンプルにしてください。省略表現の属性を使用し、必要な場合を除き、複数の属性を使用しないでください。
言語
英語の表現は数式よりも優れています。
ブラウザ エンジンのヘッダー コード
古いブラウザ エンジンのヘッダー コードを断固として削除します。必要に応じて、標準プロパティの前に挿入できます。
アニメーション
ビューの遷移はアニメーションよりも優れています。不透明度と変換以外のプロパティをアニメーション化することは避けてください。
単位
可能な場合は単位のない値を使用してください。相対単位を使用する場合は、rem を使用します。ミリ秒よりも秒の方が優れています。
Color
透明度が必要な場合は、rgba を使用してください。また、常に 16 進形式を使用してください。
Painting
CSS を使用してリソースが簡単にコピーされる場合は、HTTP リクエストを避けてください。
ハック
ハックを使用しないでください。
パフォーマンス
可読性、正確性、表現可能性はパフォーマンスよりも優先されます。基本的に JavaScript がパフォーマンスのボトルネックになることはありません。最適化ではなく、画像圧縮、ネットワーク アクセス、DOM の再配置。この記事の基本原則を 1 つだけ思い出せるとしたら、それは間違いなくこれでしょう。
ステートレス
関数をできるだけ純粋に保つようにしてください。理論上、すべての関数には副作用がなく、外部データを使用せず、既存のオブジェクトを変更する代わりに新しいオブジェクトを返します。
可能な限りネイティブ メソッドに依存します。
必須
強制が意味がある場合は、暗黙的な強制を使用します。それ以外の場合は強制は避けるべきです。
ループ
ループは変更可能なオブジェクトの使用を強制するため、使用しないでください。 array.prototype メソッドに依存します。
それを回避できない場合、または array.prototype メソッドが悪用されている場合は、再帰を使用してください。
ここには再帰を使いやすくするための一般的なループ関数があります。
Parameters
引数オブジェクトを忘れてください。多くの場合、残りのパラメーターの方が適切な選択となる理由は次のとおりです:
名前から関数に必要なパラメーターをよりよく理解できます
実数配列、使いやすい。
Apply
apply() は忘れてください。演算子を使用します。
Binding
もっと慣用的な方法がある場合は、bind() を使用しないでください。
関数のネスト
必要な場合を除き、関数をネストしないでください。
合成関数
複数の入れ子関数の呼び出しは避けてください。代わりに合成関数を使用してください。
キャッシュ
キャッシュ関数のテスト、大規模なデータ構造、および余分な操作。
変数
const は let よりも優れており、let は var よりも優れています。
Conditional
IIFE および return ステートメントは、if、else if、else および switch ステートメントよりも優れています。
オブジェクトの反復
可能であれば for…in は避けてください。
マップ オブジェクト
オブジェクトに正当な使用例がある場合、通常はマップの方が優れており、より強力な選択肢になります。
Curry
Curry は強力ではありますが、多くの開発者にとって異質なパラダイムです。状況的な使用例は非常に珍しいため、乱用しないでください。
可読性
一見巧妙なトリックでコードの意図を曖昧にしないでください。
コードの再利用
小さく、高度に構成可能で再利用可能な関数を作成することを恐れないでください。
依存関係
依存関係を最小限に抑えます。サードパーティとは、あなたが知らないコードです。簡単にコピーできるメソッドがいくつかあるからといって、ライブラリ全体をロードしないでください:
(この記事は「Mader Network」から転載されています、画像ソース: pbyrne CC Licensed、許可なく使用しないでください。)