HTML・CSS コーディングガイド
「作業担当者以外が見てもわかりやすく、修正対応がしやすいCSS」を目的にコーディングガイドを作っています。
他社コーディング案件はそれぞれのルールに沿って作業して下さい。
ただし、他社ルールに沿って作業をする場合はルールの理解など手間暇がかかるので見積もりの際注意して下さい。
パスの記述
「{gl.top}/」から始まるパスで記述します。「/」から始まるルート相対パスはssl対応で困るので使用しません。
インデント
タブを使用します。半角スペースは使用しません。
閉じタグ
閉じタグはしっかりと書きます。
CSS命名規則
BEM
Block,Element,Modifier(モディファイア)で構成される命名規則です。
class名は冗長になるので記述スピードは遅くなりますが、コードがより明確でメンテナンスに優れたものになります。
※今回導入する命名規則はBEMなどを取り入れたFLOCSSも参考にしています
・MindBEMding
BEMの概要やソース例など実際の使い方がわかりやすいです。
・BEMとは何か?
図を使ってBlock,Element,Modifierがわかりやすく説明されています。HTML/CSS言語以外についても言及されています。
Modifierの命名の派生パターン
SMACSSのStateパターンの命名を拝借し、'is-*'プレフィックスを付与し、.is-activeというようにすることもできます。
CSSはclass同士をスペース無しで記述する方法で対応します。
このアイデアを採用する場合の原則として、.is-activeそのものにルールを持たせるのは禁止します。これは.is-activeそのものが持つルールが、 他のモジュールのModifierのスタイルを汚染してしまうのを防ぐためです。
名前の付け方のヒント
1.ブロック名を決める(例:news-list)
2.ブロック内のパーツ名を決めて「__」でつなぐ(例:news-list__img)
3.そのパーツに別のバリエーションや状態があれば「is-」プレフィックスをつけて対応する
(HTML例:class="news-list__img is-reverse" CSS側:.news-list__img.is-reverse {...})
プレフィックス
-
.c-コンポーネント
ボタンやタイトルなど再利用できる最小限のパーツ。幅などの固定数値はなるべく設定しないのが好ましい -
.u-ユーティリティ
.mbs{margin-bottom: 15px;}のような独立した役割をもつもの。わずかなスタイル調整のための便利なクラス -
.is-Modifierを表すクラス。※参照:Modifierの命名の派生パターン(推奨)
-
.js-JSに関わるクラス名。JSを実装する際は別途、このプレフィックスをつけたクラス名をつけCSSとJSの分離を明確にします。このクラスにCSSの装飾はしないこと
これらを付けることで、各classの役割が明文化される。さらに、命名に独自性があるので全置換などが行いやすい。
短所はBEMの命名規則がさらに冗長になってしまう。
IDはなるべく使わず、classを使用する
IDはCSSの優先度が高く、打ち消しが効きにくいので使わないようにします。
ページ内リンクを貼る時はIDでOKです。
IDとクラスの命名
IDとクラス名にはちゃんと意味の分かる名前を使うこと。
見た目を反映したものやそれが何を表しているか不可解な名前ではなく、要素の目的や役割を反映した名前を付ける。
単語は基本的に省略しませんが、省略しても意味の分かる単語は積極的に省略してよい。
image → img
text → txt
title → ttl
button → btn
banner → bnr
header → hd
footer → ft
column → col など・・・
・よくつかわれそうな単語辞典
命名は小文字で
命名は小文字で、キャメルケース(単語頭文字を大文字にする)は使わないようにします。
例:SampleText → sample-text
タイプセレクタの記述
IDとクラス名にタイプセレクタ(HTML要素を対象としたセレクタ)は記述しない。
パフォーマンスを考慮して不要な子孫セレクタも避ける。
子孫セレクタ「.sample .test」のような指定は追加・修正対応に弱いのであまり使わないのが吉。
プロパティ名の終端
すべてのプロパティ名の終端にはコロン(:)の後に半角スペースを入れること。
「{ 」の前にも半角スペースを付けます。
セレクタとプロパティの分離
別々のセレクタとプロパティは改行して書くこと。
似た記述が続く場合は一行でまとめてもよいです。
CSSプロパティの記述順序
よくわからないプロパティがでてきたら、最初か最後に記述して下さい。
コメントの書き方
コメントは必要に応じて記述します。
HTMLのコメント
ソースコードが長く、閉じタグがわかりにくい場合、以下のように閉じタグにコメントを付けます。
classの閉じの場合は「/.」、idの場合は「/#」です
フレームワークのコメント
フレームワークの記述方法では以下のようにコメントを付けることも出来ます。
ソースには出力されないので、見られたくないコメント(作業者間での説明など)を付ける際に便利です。
コンテンツの目印に使う場合は「▼」は大コンテンツ、「▽」は小コンテンツとして使い分けています。
CSSのコメント
大コメントで区切る場合には上に空行を5つ入れておきます。
この空行の固まりによって、巨大なファイルを素早くスクロールしていても、すぐにセクションの切れ目に気がつくことができます。
Media queryの記述場所
参考URL
http://www.webcreatorbox.com/webinfo/coding-guideline/「Google HTML/CSS Style Guide」を適当に和訳してみた
http://re-dzine.net/2012/05/google-htmlcss-style-guide/
一般 CSS 注釈、アドバイス、ガイドライン
https://github.com/kiwanami/CSS-Guidelines