version 1.0.0
Last update: 2006-05-16T15:54:10+09:00
基本は、ユーザ環境ガイドラインに沿って、どのバージョンの CSS を導入するかを決定します。ここでは、1998年5月に W3C より改訂公表された CSS2勧告[原文][邦訳]を基準としていますが、実際のターゲットブラウザのサポート状況および互換性を考慮して適宜 CSS1 のみの範囲内で記述します。
link 要素で、visual.css 内に他の CSS を@import 規則で読み込みます。1枚の文書に1枚のCSSでも可能ですが、柔軟な利用方法を想定して役目ごとに分割させます。
ただし、Web アプリケーションのテンプレートなど、CSSを1枚にまとめる必要がある場合は、分岐させずひとまとめにして作成します(その場合、分けるべきだった箇所をコメントで区切ります)。Web アプリケーションに限らず、構築するサイトの規模によってはまとめて記述します。
<!-- (X)HTML 側では styles.css のみを link 属性で読み込みます。 -->
<link rel="stylesheet" href="http://purpr.in/common/stylesheets/styles.css" type="text/css" />
-----------------------------------------------------------------------------------------------------
/* styles.css の冒頭 */ ← 注)実際のファイルには冒頭のコメントはありません
@charset "utf-8";
@import url("default.css"); ↓ 最初は一般的なものから
@import url("font.css"); ↓ 下に進むほどに、より詳細な指定がされているスタイルを読み込みます。
@import url("layout.css"); ↓ layout.css はさらにレイアウト種類別に分岐しますが、読み込みたいレイアウトのコメントを外すことで
@import url("microformats.css"); ↓ 反映させたいレイアウトに調整します。
/* ↓styles.css の本体へ */ ↓ この例の場合、デザインの細かい指定がされているstyles.cssが一番最後に読み込まれます。
/* 制作者情報 */
/* ブラウザ初期化スタイル */
/* 汎用要素スタイル */
/* 汎用クラススタイル */
/* 構造(ワイヤーフレーム)別スタイル */
/* カテゴリー別スタイル */
複数のファイルを読み込むことを想定し、専用のディレクトリ「stylesheets」をサイトドメインのルートディレクトリもしくは「common」ディレクトリの直下に設置します。
タブによるインデントは行わず、全て半角スペースにより行います。タブをスペースに変換できるテキストエディタであれば、タブ1つでスペース4個分を確保するよう設定します。
用途や作者・バージョンがわかるように必要項目をコメント内に明示します。
/*
* Style Name: CSSの名前
* Style URI: CSSのURI
* Description: CSSの用途の説明
* Version: CSSのバージョン
* Last Up Date: 最終更新日時
* Author: CSSの作者
* Author URI: CSSの作者 web サイト URI
* Author Email: CSSの作者連絡先
* Guideline URI: 準拠するガイドラインの URI
*/
セレクタを分類した場合に大きなまとまりがあるときに3行コメントを挿入して見出しらしく記述します。
/* ----------------------------------------
* Universal selector
* ---------------------------------------- */
部分的に注釈が必要な場合は1行コメントを挿入します。コメント開始'/*'の右隣およびコメント終了'*/'の左隣に半角スペースを入れます。
/* Comment */
セレクタに class および id の指定がある場合は、文書中のどの要素に係る class / id なのかを極力明示します。(CSS だけではどの要素につけられているのかが理解できず、都度 HTML を確認しなければならなくなるため)
ただし、どの要素にも適用させたい汎用 class の場合はこの限りではありません。
/* id が container の div 要素の例 */
div#container {
width: 760px;
}
/* class が section の div 要素の例 */
div.section {
margin: 0 0 1.2em 0;
}
/* class が err で、要素に関係なく適用したい場合の例 */
.err {
color: #f00;
}
.selector1 {
property: value;
property: value1 value2 value3 value4;
}
.selector2 {
property: value;
property: value1 value2 value3 value4;
}
レイアウトを定義するスタイルシート/デザインを定義するスタイルシートにおいては、例に示すように、HTML 内で要素の親子関係が存在した場合にインデントを行い、視覚的にメンテナンスをしやすくします。
ただし、デフォルトスタイルシートでは行いません。
/* Structure */
body {
width: 100%;
background-color: #000;
}
div#container {
width: 85%;
color: #000;
background-color: #fff;
}
...more
プロパティの出現する順番は、CSS2 仕様書に出現する順番に沿って記述しようと考えていますが、実際のところ試行錯誤の段階です。
テキストエディタのみの制作の方だけなら良いのですが、オーサリングツールを使っている方を考慮すると指定しづらいことを考慮すると参考程度として厳密に規定しないほうがよいのかもしれません。
selector {
ボックスモデル Box model
視覚フォーマットモデル Visual formatting model
視覚フォーマットモデルの詳細 Visual formatting model details
視覚効果 Visual effects
生成内容、自動番号付け及びリスト Generated content, automatic numbering, and lists
色及び背景 Colors and Backgrounds
フォント Fonts
テキスト Text
表 Tables
ユーザインターフェース User interface
}
まとめて記述できるプロパティはまとめてあります(例:font)。
div.section {
margin: 0 0 15px 0;
padding: 8px 10px;
border: 1px solid #f00; /* width > style > color */
display: block;
position: absolute;
top :0;
right: 0;
bottom: 0;
left: 0;
float: none;
clear: both;
z-index: 1;
width: 600px;
min-width: 400px;
max-width: 600px;
height: 300px;
min-height: 100px;
max-height: 300px;
line-height: 1.5;
vertical-align: middle;
overflow: auto;
clip: auto;
visibility: visible;
list-style: disc outside; /* type > position > image */
color: #000;
background: #fff url(/images/bg.png) repeat-y fixed top left; /* color > image > repeat > attachment > position */
font: normal normal normal 100%/1.5 "ヒラギノ角ゴ Pro W3", verdana, arial, sans-serif; /* style > variant > weight > size/line-height > family */
text-indent: 1em;
text-align: left;
text-decoration: none;
letter-spacing: 0.1em;
word-spacing: 0.1em;
text-transform: lowercase;
cursor: pointer;
}
想定されるすべての環境に適合するスタイルシートを提供するのが理想ですが、あらかじめユーザ環境ガイドラインで定めたターゲットのメディアに対応します。