コードの書き方で一番大切なのは統一性ですよね。ここにスペースが無くちゃならないとかじゃなくて重要なのは一つのルールを突き通すこと。
というわけで俺のコーディングルールを簡単に晒しておきます。
HTMLのコーディング
<div id="rules" class="section"> <h1 class="title">TITLE</h1> <div class="content column"> <p>TEXTTEXTTEXT</p> <p>TEXTTEXTTEXT</p> </div> <div class="content column"> <p>TEXTTEXTTEXT</p> <p>TEXTTEXTTEXT</p> </div> </div>
インデントはスペース2個分
タブはスペースと区別がつきかつコンパクトなスペース2個分に設定しています。
要素はかならずブロックで区切る
中の要素がたった一つであってもブロック要素で囲みます。
レイアウト変更などが起きた場合にセクションごとにブロックで区切っておくと柔軟に対応できるためです。
クラスは出来る限り汎用的な命名をする。
例えばredと言うクラスを付けてスタイルでcolor:redと指定してしまったら青にしてくれと変更指示があった場合、color:blueなりなんなり書き換えなきゃなりません。表示がblueなのにクラス名がredという矛盾が発生し、それを対処するためにクラス名を書き直したりする必要が出てきます。
そこで根本的になぜ赤にする必要があるのかを考えてクラスを命名します。例えば注釈であればnoteと付ければ、赤でも青でも黒太字でも矛盾は起きません。
汎用的な名称の例:
column section nav content photo title note catch list item
CSSのコーディングルール
* { padding:0; margin:0; } .section ~ .section { margin-top: 5em; } .column ~ .column { margin-top: 2em; } #rules .title { position: relative; font-size: 1.2em; font-weight: bold; color: #c1c1c1; border-bottom: 1px solid; } #rules .title:before { content: ''; display: block; width: 0.4em; height: 1em; position: absolute; top: 50%; left: 0; margin-top: -0.5em; }
セレクタと:の後は半角スペースを入れる
以下のようにセレクタと:の後には半角スペースを入れます。
#rules { width: 100px; }
スタイルを一行で書く場合は以下のように:の後にスペースは入れません。プロパティの前後には半角スペースを入れます。
#rules { display:table; width:800px; margin:0 auto; }
色コードのhex指定は小文字
HTMLもCSSもコード全般は基本小文字で記述します。色コードは3桁に略すことが出来る場合は略します。例:#ccc
要素名で指定せずIDかクラス名で指定する
例えば以下のようにタイトル要素にスタイルを指定する場合、h1に対してスタイルを指定してしまった場合、要素が変更された場合破綻します。
h1 { color:#ccc; }
.titleというクラスに対してスタイルを指定すれば、h2になろうとpになろうとスタイルは適用されます。
.title { color:#ccc; }
CSSプロパティの記述の順番
基本的にボックスモデルに準じて内側から外側の順番で記述します。ボックスモデルとは関係ないプロパティは適当な位置に記述してます()
#example { position: absolute; top: 0; left: 0; right: 0; bottom: 0; z-index: 0; width: 100%; height: 100%; display: block; font-size: 100%; font-family: meiryo; font-weight: bold; line-height: 1.5; color: #fff; padding: 10%; background: #000; border: 1px solid #ccc; box-sizing: border-box; box-shadow: 0 0 3px #ccc; border-radius: 50%; margin-top: 10%; margin-left: 10%; margin-right: 10%; margin-bottom: 10%; }
上の例では以下のような指定の順番になっています。
- 表示位置
- サイズと表示方法
- フォント関連の指定
- 内側の余白
- 背景の指定
- 境界の指定
- 外側の余白
ディレクトリ構造
- /
- _images/
- _common/
- index/
- about/
- company/
- ...
- _css/
- common/
- reset.css
- layout.css
- common.css
- page/
- index.css
- about.css
- company.css
- ...
- common/
- index.html
- about.html
- company.html
- ...
- _images/
- 関連記事
-
-
CSSでフレキシブルなusemapの代替を実装 2016/08/12
-
HTML5のテンプレ 2016/07/01
-
HTMLとかCSSのコーディングルールとか 2016/05/12
-
HTML,CSS3でLINEのようなもの 2016/04/20
-
HTML,CSS3でフレキシブルな陰陽マークを書いてみた 2016/04/14
-
ファイルの命名ルール
例えば画像のファイル名なら「要素のID-クラス名-連番.jpg」とします。
例:example-hoge-1.jpg
要素のIDやクラス名に合わせておけば、あのファイル名は何だったっけ?と思うことなくコーディングスピードが劇的に上がることでしょう。
なんか色々書くべきことはあったかと思いますがとりあえずここまで。