黄金律プロジェクトに何人の人が取り組んでいるかに関係なく、すべてのコード行が同じ人によって書かれたように見えるようにすることが重要です。 文法1. タブの代わりに 2 つのスペースを使用します。これは、すべての環境で一貫した表示を確保する唯一の方法です。 <!DOCTYPE html> <html> <ヘッド> <title>ページタイトル</title> </head> <本文> <img src="images/company-logo.png" alt="会社"> <h1 class="hello-world">こんにちは、世界!</h1> </本文> </html> HTML5 ドキュメントタイプすべての HTML ページの最初の行に標準モード宣言を追加すると、すべてのブラウザーで一貫した表示が保証されます。 <!DOCTYPE html> <html> <ヘッド> </head> </html> 言語属性HTML5 仕様によると: <html lang="ja"> <!-- ... --> </html> IE互換モードIE は、現在のページの描画に使用する IE のバージョンを決定するために特定のタグを使用することをサポートしています。特別な必要性がない限り、IE がサポートする最新のモードを使用するように通知するために、エッジ モードに設定するのが最適です。
文字エンコーディング文字エンコーディングを明示的に宣言することで、ブラウザがページ コンテンツをどのようにレンダリングするかを迅速かつ簡単に決定できるようになります。これを行う利点は、HTML で文字エンティティ タグを使用する必要がなくなり、すべてがドキュメントのエンコード (通常は UTF-8 エンコード) と一致することです。 <ヘッド> <メタ文字セット="UTF-8"> </head> CSSおよびJavaScriptファイルをインポートするHTML5 仕様によれば、CSS ファイルと JavaScript ファイルをインポートするときに、それぞれ text/css と text/javascript がデフォルト値であるため、通常、type 属性を指定する必要はありません。 <!-- 外部 CSS --> <link rel="スタイルシート" href="コードガイド.css"> <!-- ドキュメント内 CSS --> <スタイル> /* ... */ </スタイル> <!-- JavaScript --> <script src="code-guide.js"></script> 実用性が重要HTML 標準とセマンティクスに従うようにしてください。ただし、実用性を犠牲にしないようにしてください。常にタグの数を最小限に抑え、複雑さを最小限に抑えるようにしてください。 属性順序コードの読みやすさを確保するために、HTML 属性は以下の順序で配置する必要があります。
クラスは再利用性の高いコンポーネントを識別するために使用されるため、最初に来る必要があります。 id は特定のコンポーネントを識別するために使用され、注意して使用する必要があるため (ページ内のブックマークなど)、2 番目に使用されます。 ブールプロパティブール型プロパティは値なしで宣言できます。 XHTML 仕様では値を割り当てる必要がありますが、HTML5 仕様では必要ありません。 タグの数を減らすHTML コードを書くときは、冗長な親要素を避けるようにしてください。これを実現するには、多くの場合、反復とリファクタリングが必要になります。次の例をご覧ください。 あまり良くない <span class="アバター"> <画像src="..."> </span> <!-- より良い --> <img class="アバター" src="..."> JavaScript で生成されたタグJavaScript 経由で生成されたタグにより、コンテンツの検索や編集が難しくなり、パフォーマンスが低下します。できる場合は避けてください。 CSS構文1. タブの代わりに 2 つのスペースを使用します。これは、すべての環境で一貫した表示を確保する唯一の方法です。 /* 不正な CSS */ .selector、.selector-secondary、.selector[type=text] { パディング:15px; マージン:0px 0px 15px; 背景色:rgba(0, 0, 0, 0.5); ボックスシャドウ:0px 1px 2px #CCC、インセット 0 1px 0 #FFFFFF } /* 良い CSS */ 。セレクタ、 .セレクタセカンダリ、 .セレクタ[type="text"] { パディング: 15px; 下部マージン: 15px; 背景色: rgba(0,0,0,.5); ボックスシャドウ: 0 1px 2px #ccc、インセット 0 1px 0 #fff; } 宣言命令関連するプロパティ宣言はグループ化され、次の順序で配置する必要があります。
配置は、通常のドキュメント フローから要素を削除し、ボックス モデル関連のスタイルをオーバーライドすることもできるため、最初に行われます。ボックス モデルは、コンポーネントのサイズと位置を決定するため、2 番目に使用されます。 .宣言順序 { /* 位置決め */ 位置: 絶対; 上: 0; 右: 0; 下部: 0; 左: 0; zインデックス: 100; /* ボックスモデル */ 表示: ブロック; フロート: 右; 幅: 100ピクセル; 高さ: 100px; /* タイポグラフィ */ フォント: 通常の 13px「Helvetica Neue」、サンセリフ体。 行の高さ: 1.5; 色: #333; テキスト配置: 中央; /* ビジュアル */ 背景色: #f5f5f5; 境界線: 1px 実線 #e5e5e5; 境界線の半径: 3px; /* その他 */ 不透明度: 1; } @import は使用しないでくださいタグと比較すると、@import ディレクティブははるかに遅く、追加リクエストの数が増えるだけでなく、予期しない問題も発生します。いくつかの選択肢があります: 複数の要素を使用するSass や Less などの CSS プリプロセッサを使用して、複数の CSS ファイルを 1 つのファイルにコンパイルします。Rails、Jekyll、または CSS ファイルのマージ機能を提供するその他のシステムを使用します。 <!-- リンク要素を使用する --> <link rel="スタイルシート" href="core.css"> <!-- @imports を避ける --> <スタイル> @import url("more.css"); </スタイル> メディアクエリの場所メディアクエリを関連するルールのできるだけ近くに配置します。これらを 1 つのスタイル シートにまとめたり、ドキュメントの下部に配置したりしないでください。分離すると、将来忘れ去られてしまいます。典型的な例を以下に示します。 。要素 { ... } .element-アバター { ... } .element-selected { ... } @media (最小幅: 480px) { 。要素 { ...} .element-アバター { ... } .element-selected { ... } } 1行ルール宣言宣言が 1 つだけ含まれるスタイルの場合、読みやすさと編集のしやすさを考慮して、ステートメントを 1 行に配置することをお勧めします。複数の宣言があるスタイルの場合、宣言は複数の行に分割する必要があります。 その主な理由はエラー検出です。たとえば、CSS バリデータは 183 行目の構文エラーを指摘します。 1 行に 1 つのステートメントがある場合、エラーを無視することはできません。1 行に複数のステートメントがある場合、エラーを見逃さないように注意深く分析する必要があります。 /* 1行に1つの宣言 */ .span1 { 幅: 60px; } .span2 { 幅: 140px; } .span3 { 幅: 220px; } /* 複数の宣言、1行に1つずつ */ .スプライト{ 表示: インラインブロック; 幅: 16px; 高さ: 15px; 背景画像: url(../img/sprite.png); } .icon { 背景位置: 0 0; } .icon-home { 背景位置: 0 -20px; } .icon-account { 背景位置: 0 -40px; } 省略プロパティ宣言すべての値を明示的に設定する必要がある場合は、短縮プロパティ宣言の使用を最小限に抑える必要があります。短縮プロパティ宣言の一般的な乱用には次のものがあります。
ほとんどの場合、短縮プロパティ宣言にすべての値を指定する必要はありません。たとえば、HTML の見出し要素では上部と下部の余白の値を設定するだけでよいので、必要に応じてこれら 2 つの値をオーバーライドするだけです。省略形のプロパティ宣言を過度に使用すると、コードが乱雑になり、プロパティ値が不必要に上書きされて予期しない副作用が発生する可能性があります。 /* 悪い例 */ 。要素 { マージン: 0 0 10px; 背景: 赤; 背景: url("image.jpg"); 境界線の半径: 3px 3px 0 0; } /* 良い例 */ 。要素 { 下マージン: 10px; 背景色: 赤; 背景画像: url("image.jpg"); 左上の境界線の半径: 3px; 右上の境界線の半径: 3px; } Less と Sass でのネスト不必要なネストを避けてください。ネストできるからといって、必ずしもネストすべきというわけではないからです。スタイルを親要素 (子孫セレクターとも呼ばれます) に制限する必要がある場合、およびネストする必要がある要素が複数ある場合にのみ、ネストを使用します。 // ネストなし .table > thead > tr > th { … } .table > thead > tr > td { … } // ネストあり .table > thead > tr { > 番目 { … } > td { … } } Less と Sass の演算子読みやすさを向上させるには、括弧で囲まれた数式内の値、変数、演算子の間にスペースを追加します。 // 悪い例 。要素 { マージン: 10px 0 @変数*2 10px; } // 良い例 。要素 { マージン: 10px 0 (@変数 * 2) 10px; } 注記コードは人間によって書かれ、保守されます。コードが自己記述的で、適切にコメントされ、他の人が理解しやすいものであることを確認してください。適切なコードコメントは、コードのコンテキストと目的を伝えます。コンポーネント名やクラス名を単純に繰り返すことはしないでください。 長いコメントの場合は必ず完全な文章を書いてください。一般的なメモの場合は簡潔なフレーズで問題ありません。 /* 悪い例 */ /* モーダルヘッダー */ .modal-header { ... } /* 良い例 */ /* .modal-title と .modal-close のラッピング要素 */ .modal-header { ... } クラスの命名1. クラス名には小文字とダッシュのみ使用できます (アンダースコアやキャメルケースは使用できません)。関連するクラスに名前を付けるにはダッシュを使用する必要があります (名前空間と同様) (たとえば、.btn および .btn-danger)。 /* 悪い例 */ .t { ... } 。赤 { ... } .header { ... } /* 良い例 */ .tweet { ... } 。重要 { ... } .tweet-header { ... } セレクタ共通要素にクラスを使用すると、レンダリング パフォーマンスが最適化されます。 /* 悪い例 */ スパン { ... } .page-container #stream .stream-item .tweet .tweet-header .username { ... } .アバター { ... } /* 良い例 */ .アバター { ... } .tweet-header .username { ... } .tweet .avatar { ... } エディターの設定一般的なコードの不整合や相違を回避するには、エディターを次の構成に設定します。
ドキュメントに従って、これらの構成情報をプロジェクトの .editorconfig ファイルに追加します。例: Bootstrap の .editorconfig の例。詳細については、EditorConfig を参照してください。 より良く、より快適に読むには、こちらの記事 https://www.jb51.net/shouce/codeguide/ をご覧ください。 |
>>: MYSQL 左結合の最適化 (10 秒から 20 ミリ秒)
このセクションでは、Web ページ内のテキストをスクロールしたり、スクロール プロパティを制御できる...
プロジェクトでは、さまざまな条件や使用シナリオを制御するために、docker-compose.yml...
最近、練習プロジェクトをしていたときにスライダーを使う必要があったので、調べてみました。まず、水平ス...
目次1. プロジェクトの構築2. Vue3 体験 + Vant 紹介2020年9月18日にvue.j...
序文みなさんこんにちは。CSS ウィザードの alphardex です。この記事では、three.j...
Bツリーインデックス異なるストレージ エンジンでは、異なるストレージ構造を使用する場合もあります。た...
1. vertical-align プロパティは次の効果を実現します。 vertical-alig...
導入圧縮トランスポート プロトコル、圧縮列ソリューション、圧縮テーブル ソリューションなど、MySQ...
序文Github にある以前のコードには、CUDA 8.0 環境が必要なものもあります。初心者の場合...
崇高なSublime Text はコード エディター (Sublime Text2 は有料ソフトウェ...
1. クエリを最適化するには、テーブル全体のスキャンを避けてください。まず、where と orde...
序文カバーリング インデックスについて説明する前に、まずそのデータ構造である B+ ツリーを理解する...
すりガラス効果がうまく表現されていれば、ページが非常に鮮やかで立体的に見えるようになります。写真に直...
この記事の例では、計算機機能を実装するためのjsの具体的なコードを参考までに共有しています。具体的な...
目次序文非同期イテレータとは何ですか?非同期イテレータストリームとしてページング機能を備えたAPIの...