免責事項
1)この記事は、SASS / SCSS開発者とCSSライターの両方に適しています。
2)上記のコード例は同一ではありませんが、ほとんどの場合、互換性があり、ヒントを示すために書かれています。
1)長すぎる投資をしないでください
通常のcssコードを書くとき、これは通常起こりません。 cssプロパティの前に10個の要素のチェーンを記述することはほとんどありません。 しかし、より少ないコードのツリー構造では、これは可能性が高いです。 コードラダーを簡素化します。 個々のブロックを選択して取り出します。 これは、特にジェネリッククラスとIDに当てはまります。 セレクターのチェーンが長いとスタイルシートが重くなり、読みにくくなります。場合によっては、CSSファイルのサイズが過剰なネストのために2倍になることがあります。
悪い | よし |
---|---|
|
|
コンパイルされたcssコードを表示
悪い | よし |
---|---|
|
|
2)コンマで区切られたセレクターに注意してください
セレクターのアタッチメントの先頭にコンマで区切られた2つ以上のセレクターを配置する場合(上記の例から)、すべてのルールは、セレクターを先頭に配置する回数だけ複製されます。 結果のcssファイルの重みを最適化することについて言えば、約数十キロバイトを判断できます。 コンマで区切られたセレクターを既に使用している場合、コンマで区切られたセレクターを使用することは特に危険です。 1つの重大なケースを以下に示します。
悪い | よし |
---|---|
|
|
コンパイルされたcssコードを表示
悪い | よし |
---|---|
|
|
3)ミックスイン
ミックスインをより頻繁に作成する
コードを書いているときにdeja vuのように感じたら、お気軽にmixinを追加してください。 これにより、後続のプロジェクトの時間を大幅に節約できます。 多くのオプションを使用して、ミックスインをすぐに完璧にしようとしないでください。 シンプルでわかりやすいものでなければなりません。 その後、それを拡張し、より普遍的にします。
ミックスインのパラメーター化を使用する
使用するミックスインはパラメーター化できます。 まず、便利です。 次に、結果をcssに保存します。
ミックスインを追加するとき、それをボタンのデザインとし、単純なcssプロパティを使用してサイズまたは色を変更します。次に、セレクターのコンパイル済みcssに、最初にミックスインで説明されたルールがあり、次に説明したルールがあります。 cssプロパティの不必要な複製が判明しました。 これは、パラメーター値をミックスインに挿入することで回避できます。このように、ミックスインは必要なパラメーターですぐにコンパイルされます。 また、パラメータのデフォルト値を設定することを忘れないでください。
悪い | よし |
---|---|
|
|
コンパイルされたcssコードを表示
悪い | よし |
---|---|
|
|
良いミックスインは小さなミックスインです
キューブのようなミックスインを収集します。 コードの繰り返し部分を参照して、ミックスインを使用してください。 多くのcssプロパティにはベンダープレフィックスが付いているため、同様のプロパティごとに@argumentsパラメーターを使用してmixinを追加します。 そして、それらを既に他のミックスインに入れます。
ベンダープレフィックスを持つプロパティにはミックスインを使用します-時間を節約します。
@pad: 0.5rem; @bpad: @pad/5; @color-back: #fff; @color-btn: maroon; .border(@color: #ccc) { border: @bpad solid @color; } .gradient(@c1,@c2){ background: @c1; background: -moz-linear-gradient(top, @c1 0%, @c2 100%); background: -webkit-gradient(linear, left top, left bottom, color-stop(0%,@c1), color-stop(100%,@c2)); background: -webkit-linear-gradient(top, @c1 0%,@c2 100%); background: -o-linear-gradient(top, @c1 0%,@c2 100%); background: -ms-linear-gradient(top, @c1 0%,@c2 100%); background: linear-gradient(to bottom, @c1 0%,@c2 100%); } .btn(@padding: @pad) { padding: @padding/2 @padding; display: inline-block; text-align: center; text-decoration: none; } .btn-simple(@color: @color-btn) { .btn; .border(darken(@color,7%)); .gradient(lighten(@color,3%), darken(@color,3%)); color: @color-back; color: lighten(@color,40%); &:hover { .gradient(darken(@color,3%), darken(@color,8%)); color: lighten(@color,50%); } &:active { .gradient(darken(@color,15%), darken(@color,15%)); color: lighten(@color,10%); .border(darken(@color,25%)); } }
4)テンプレートを使用する
いずれの場合でも、特にcss / lessフレームワークを使用しない場合、独自のテンプレートを作成し、より少ないファイルを含めます。各ファイルには独自のルールセットがあります。 そのうちの1つはベンダープレフィックスの小さなミックスインを担当し、もう1つはセレクタのプロパティをCSSでリセットし、3つ目はWebフォントとアイコンを接続します。
5)変数を使用する
色のサイズの変数。 これは、グリッドに固執し、要素を揃えるのに役立ちます。
rem単位を使用してブロックサイズとパディングを設定します。親フォントのサイズに依存しないため、これらは優れています。 したがって、フォントサイズを変更しても、水平インデントは同じになります。 また、htmlタグの画面解像度からフォントサイズの変更を設定すると、すべてのサイズが比例して増加します。 これはタブレットに適用されます。テキストとインデントは、「電話」スケールに比べてわずかに大きくする必要があります。 (最新のブラウザ、つまり9 +で動作します)
まとめると
- 少ないコードのクリーンさを追いかけないで、それがどのようにコンパイルされるかを見てください
- セレクターのツリーのようなネストに夢中にならないでください
- セレクター列挙は慎重に使用し、それが本当に置き換えられない場合にのみ使用してください
- 可能な限り変数を追加します。
- プロジェクトのブラウザサポートで許可されている場合は、 remを使用します。 したがって、ブロックのインデントとフィッティング値の異なる問題を取り除きます(ブラウザのサポートを忘れないでください)
- キューブのようなミックスインを作成します。1つまたは2つのプロパティを置き換える単純なものから、他のミックスインを含む複雑なものに移行します。
- どこでもパラメーター化されたミックスインを作成し、デフォルト値を設定する
- ボタン、インターフェイス要素、ベンダープロパティにミックスインを使用する
もちろん、多くのことは特別なcss短縮と最小化によって最適化できますが、高品質のコードを書く必要があります!