11/06学習内容(CSS設計)

CSSの命名規則


後から書き換えたり、他人が見る想定でCSSを書いていく

「良いCSS」の4条件


予測しやすい
再利用しやすい
保守しやすい
拡張しやすい

予測しやすい
class名のつけかたにルールがある、スタイルの優先度が整理されている

  • 修正する時に、CSSの変更で予想外のことが起こりにくい

  • 修正する時に、どこにどのスタイルが当たっているかの予測がつけられ(探す手間が省ける)

  • 自分で書いているときに、スタイルをどう当てるかを迷わずに書くことができる

再利用しやすい(コンポーネント)

  • 使いまわせるパーツのスタイルはまとめる

  • 記述量が大幅に減らせる

  • 修正する時に、一括で変更ができる

保守しやすい
「修正・変更した時にわかりやすい書き方にする
予測していないスタイルの上書きが起こったり、重なり順を書くのに他の素のz-indexを考えないといけなかったり、一つ書き換えたら全く別のものが崩れてしまっていたりと、カオスな状態になってしまう

拡張しやすい
追加変更があったときに、最低限のコストで作れるようにする。
追加変更がきたときに、手間と時間をかけずにコードが書ける
変更があったとしても、容易に変更ができる

BEM概要


「Block_Element__Modifire」
Block:区画
Element:要素
Modifire:装飾、詳細

構造上Elementにするのにも限界を感じる場合、「Blockの中でBlockを作る」
イメージheaderというBlockのなかにheader-navというBlockを作る

Mix
一つの要素に複数のclassをつけること
classごとに責任を分けるため

接頭辞のグループ分け


layout(レイアウト)
大きな「枠」専用のグループ
widthやmarginやpaddingなどのようなレイアウトに関わるスタイリングのみ行う

module(モジュール)
どこでも使いまわせるパーツのグループ
基本的に、レイアウトに関わるスタイリングは行わない。

utility(ユーティリティ)
基本的にclass名がそのまま、CSSのプロパティ名と値を表現しているもののグループ
名前の付け方はEmmetを参考にすることが多い
同じスタイルを高頻度で使い回すWebサイトのデザインや、Web開発で主に使われる。

気をつける点

詳細度をむやみにあげないこと
!important;等

「見た目から命名する」は避けて「意味や役割からつける」
NG
.class-name__color-red {
color: red;

OK
/* 警告用の色として扱う */
.class-name__warning {
color: red;
}
thenounproje

この記事が気に入ったらサポートをしてみませんか?