English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
:
:box-カンマで区切られた属性値に対して、各カンマの後ろにスペースを挿入する必要があります(例えば、
)。rgb()
、rgba()
、hsl()
、hsla()
または rect()
の値内部の後ろにスペースを挿入することで、複数の属性値(カンマとスペースが含まれる)から複数の色値(カンマのみ、スペースなし)を区別することができます。.5
代わりに 0.5
;-.5px
代わりに -0.5px
)。#fff
。ドキュメントをスキャンする際には、小文字はより識別しやすく、形式がより区別しやすいです。#fff
代わりに #ffffff
。input[type="text"]
。特定の状況でのみオプションです、しかし、コードの統一のために、すべてにダブルクォートを追加することをお勧めします。margin: 0;
代わりに margin: 0px;
。ここで使用されている用語について疑問がある場合は、Wikipediaの カラースキーマ - 文法。
/* 悪いCSS */ .selector, .selector-サブシードリー, .selector[type=text] { padding:15px; margin:0px 0px 15px; background-color:rgba(0, 0, 0, 0.5); box-影:0px 1px 2px #CCC,inset 0 1px 0 #FFFFFF } /* 良いCSS */ .selector, .selector-サブシードリー, .selector[type="text"] { padding: 15px; margin-bottom: 15px; background-color: rgba(0,0,0,.5); box-shadow: 0 1px 2px #ccc, inset 0 1px 0 #fff; }
関連する属性宣言は一組にまとめ、以下の順序で並べるべきです:
由于定位(positioning)可以从正常的文档流中移除元素,并且还能覆盖盒模型(box model)相关的样式,因此排在首位。盒模型排在第二位,因为它决定了组件的尺寸和位置。
他属性只是影响组件的内部(inside)または前2つの属性に影響を与えないため、後ろに配置されています。
完全な属性リスト及其順序については、参照してください インセット。
.declaration-order { /* ポジショニング */ position: absolute; top: 0; right: 0; bottom: 0; left: 0; z-index: 100; /* ボックス-モデル */ display: block; float: right; width: 100px; height: 100px; /* タイポグラフィ */ font: normal 13px "Helvetica Neue", sans-serif; line-height: 1.5; color: #333; text-align: center; /* ビジュアル */ background-color: #f5f5f5; border: 1px solid #e5e5e5; border-radius: 3px; /* その他 */ opacity: 1; }
@import
と <link>
タグと比較して、@import
命令を使用する場合、遅くなるだけでなく、追加のリクエスト回数が増え、予期せぬ問題が発生する可能性があります。代替方法は以下の通りです:
<link>
要素参照してください Steve Soudersの記事もっと詳しく知りたい場合は。
<!-- Use link elements --> <link rel="stylesheet" href="core.css"> <!-- Avoid @imports --> <style> @import url("more.css"); </style>
メディアクエリをできるだけ関連するルールの近くに配置します。それらを1つのスタイルファイルにまとめたり、ドキュメントの最下部に配置したりしないでください。分けて配置すると、将来忘れられる可能性があります。以下に典型的な例を示します。
.element { ... } .element-avatar { ... } .element-selected { ... } @media (min-width: 480px) { .element { ...} .element-avatar { ... } .element-selected { ... } }
特定のメーカーの前缀付き属性を使用する場合、インデントの方法で、各属性の値を垂直方向に整列させ、多行編集を便利にします。
Textmateで、使用 テキスト → 選択範囲の各行を編集 (⌃⌘A)。在 Sublime Text 2 中、使用 Selection → Add Previous Line (⌃⇧↑) および Selection → Add Next Line (⌃⇧↓)。
/* Prefixed properties */ .selector { -webkit-box-shadow: 0 1px 2px rgba(0,0,0,.15); box-shadow: 0 1px 2px rgba(0,0,0,.15); }
对于只包含一条声明のスタイル、読みやすさと迅速な編集のために、同じ行に文を配置することをお勧めします。複数の宣言を持つスタイルの場合、宣言を複数の行に分けるべきです。
この方法の重要な要素は、エラー検出のためです -- 例えば、CSS検証器は 183 行に構文エラーがあります。単一行の単一の宣言の場合、このエラーを無視しません;単一行の複数の宣言の場合、エラーを避けるために注意深く分析する必要があります。
/* Single declarations on one line */ .span1 { width: 60px; } .span2 { width: 140px; } .span3 { width: 220px; } /* Multiple declarations, one per line */ .sprite { display: inline-block; width: 16px; height: 15px; background-image: url(../img/sprite.png); } .icon { background-position: 0 0; } .icon-home { background-position: 0 -20px; } .icon-account { background-position: 0 -40px; }
すべての値を明示的に設定する必要がある場合、簡略化形式の属性宣言の使用をできるだけ制限するべきです。一般的な簡略化形式の属性宣言の濫用の例は以下の通りです:
padding
margin
font
background
border
border-radius
ほとんどの場合、簡略化形式の属性宣言にすべての値を指定する必要はありません。例えば、HTMLのheading要素は上、下のマージン(margin)の値を設定するだけで十分です。必要な場合に、これらの値をオーバーライドするだけで十分です。簡略化形式の属性宣言の過度な使用はコードの混乱を引き起こし、属性値に不必要なオーバーライドを引き起こし、予期せぬ副作用を引き起こすことがあります。
MDN(Mozilla Developer Network)の非常に良いshorthand properties の文章は、簡略化属性宣言及其行動に不慣れなユーザーにとって非常に役立ちます。
/* 悪い例 */ .element { margin: 0 0 10px; background: red; background: url("image.jpg"); border-radius: 3px 3px 0 0; } /* 良い例 */ .element { margin-bottom: 10px; background-color: red; background-image: url("image.jpg"); border-top-left-radius: 3px; border-top-right-radius: 3px; }
不必要なネストを避けてください。なぜなら、ネストを使用できるとはいえ、それが必須であるという意味ではありません。スタイルを親要素内に制限する必要がある場合(例えば、子孫選択子)および、ネストが必要な複数の要素がある場合にのみ使用してください。
// ネストを使用しない場合 .table > thead > tr > th { … } .table > thead > tr > td { … } // ネストを使用して .table > thead > tr { > th { … } > td { … } }
コードは人によって書かれ、保守されています。あなたのコードは自己説明的で、良いコメントがあれば他人に理解しやすくなります。良いコードのコメントは、文脈関係やコードの目的を伝えることができます。単にコンポーネントやクラス名を繰り返すことはしないでください。
長いコメントの場合は、完全な文を書かなくてはなりません;一般的な注解の場合は、簡潔な短文でかまいません。
/* 悪い例 */ /* Modalヘッダー */ .modal-header { ... } /* 良い例 */ /* .modalのラッピング要素-title and .modal-close */ .modal-header { ... }
.btn
および .btn-danger
)。.btn
を表します buttonしかし、 .s
どんな意味も表現できないようにしてください。.js-*
行為を識別するためのクラス(スタイルに対して)を使用し、これらのクラスをCSSファイルに含めないでください。SassやLessの変数の命名に際しても、上記に示した規範を参考にしてください。
/* 悪い例 */ .t { ... } .red { ... } .header { ... } /* 良い例 */ .tweet { ... } .important { ... } .tweet-header { ... }
[class^="..."]
)。これらの要因によって、ブラウザのパフォーマンスに影響を与えます。拡張読本:
/* 悪い例 */ span { ... } .page-container #stream .stream-item .tweet .tweet-header .username { ... } .avatar { ... } /* 良い例 */ .avatar { ... } .tweet-header .username { ... } .tweet .avatar { ... }
/* * Component section heading */ .element { ... } /* * Component section heading * * 時には、全体のコンポーネントにオプションのコンテキストを含める必要があります。重要であれば、ここにそれを行います。 */ .element { ... } /* Contextual sub-component or modifer */ .element-heading { ... }
以下の設定にエディタを設定して、一般的なコードの不一致や差異を避けます:
ドキュメントを参照して、これらの設定情報をプロジェクトに追加します。 .editorconfig
ファイル中。例えば:Bootstrap での .editorconfig の例に関する更多信息は参照してください。 about EditorConfig。