HTML・CSS コーディングガイド

ZUKOOでHTML・CSSを書くときのルールです。
「作業担当者以外が見てもわかりやすく、修正対応がしやすいCSS」を目的にコーディングガイドを作っています。
他社コーディング案件はそれぞれのルールに沿って作業して下さい。
ただし、他社ルールに沿って作業をする場合はルールの理解など手間暇がかかるので見積もりの際注意して下さい。

パスの記述

「{gl.top}/」から始まるパスで記述します。「/」から始まるルート相対パスはssl対応で困るので使用しません。

インデント

タブを使用します。半角スペースは使用しません。

閉じタグ

閉じタグはしっかりと書きます。

CSS命名規則

BEM

Block,Element,Modifier(モディファイア)で構成される命名規則です。
class名は冗長になるので記述スピードは遅くなりますが、コードがより明確でメンテナンスに優れたものになります。
※今回導入する命名規則はBEMなどを取り入れたFLOCSSも参考にしています

BEM

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プロパティの記述順序

CSSプロパティの記述順序のルールです。一応、重要そうな順番にしています。
よくわからないプロパティがでてきたら、最初か最後に記述して下さい。

コメントの書き方

コメントは必要に応じて記述します。

HTMLのコメント

ソースコードが長く、閉じタグがわかりにくい場合、以下のように閉じタグにコメントを付けます。
classの閉じの場合は「/.」、idの場合は「/#」です

フレームワークのコメント

フレームワークの記述方法では以下のようにコメントを付けることも出来ます。
ソースには出力されないので、見られたくないコメント(作業者間での説明など)を付ける際に便利です。
コンテンツの目印に使う場合は「▼」は大コンテンツ、「▽」は小コンテンツとして使い分けています。

CSSのコメント

大コメントで区切る場合には上に空行を5つ入れておきます。
この空行の固まりによって、巨大なファイルを素早くスクロールしていても、すぐにセクションの切れ目に気がつくことができます。

Media queryの記述場所

可能な限り、media queryはそれが関係する要素の近くに記述すること。別のファイルにまとめたり、ファイルの最後にまとめたりしないこと。そうすると将来的に誰かが見落とす可能性が高くなるだけだ。
CSSの大コメントで区切るような、コンテンツごとの最後に記述すればよいとおもいます。
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

AREA

対応エリア:日本全国対応

CONTACT

家づくりに関するお問い合わせ・資料請求や、
長久手Studio・可児モデルハウスLITTLE KASHIMOへの
来場予約は、各フォームよりお問い合わせください。