...

ちゃんと CSS するためのスタイルガイド講座 taichi kaminogoya

by user

on
Category: Documents
0

views

Report

Comments

Transcript

ちゃんと CSS するためのスタイルガイド講座 taichi kaminogoya
ちゃんと CSS するためのスタイルガイド講座
taichi kaminogoya
• かみのごうやたいち
• 現在は Six Apart に勤務
• はてなの本(2004)
• ちゃんと CSS するための
スタイルガイド入門(2006)
CSS の基本をおさらい
継承
<p>やっぱり<strong>ゾウ</strong>が好き</p>
p
{
color:
yellow
}
やっぱりゾウが好き
カスケード
•
•
•
制作者スタイルシート(Web制作者)
ユーザースタイルシート(ユーザー)
デフォルトスタイルシート(ウェブブラウザ)
カスケード(! important)
•
•
•
•
•
ユーザースタイルシート(!imporatnt)
制作者スタイルシート(! important)
制作者スタイルシート
ユーザースタイルシート
デフォルトスタイルシート
セレクタの特定度
得点
0
1
10
100
1
10
10
合計点
セレクタ
全称
*
○
p
.memo
#memo
:after
:hover
[id=memo]
要素
class
id
疑似要素
疑似クラス
属性
0
○
1
○
10
○
100
○
1
○
10
○
10
セレクタの特定度
得点
0
1
10
100
1
10
10
合計点
セレクタ
全称
要素
class
id
疑似要素
疑似クラス
属性
特定度のサンプル
•
•
•
•
div (1)
div#hoge (101)
div.fuga (11)
div[id=hoge] (11)
特定度のサンプル
<div
class=”fuga”
id=”hoge”>ゾウラヴは緑になる</div>
div#hoge
{
color:
green;
}
div.fuga
{
color:
red;
}
div
{
color:
orange;
}
div[id=hoge]
{
color:
blue;
}
プロパティの継承に関係なく特定度の高い
div#hoge というセレクタでの指定が有効になる
この例の結果、ゾウラヴは緑になる
特定度のポイント
•
100個以上入れ子になったの要素タイプセレクタ
が id タイプセレクタよりも優先度が高くなること
ようなことはありません
•
セレクタの書き方を統一するルールを設定する
と、同じ特定度を保てる
HTML
マイひな形をもつ
•
•
ある程度の作業効率化
全体でなくても部分的にでもよい
HTML作成のポイント
•
•
•
一般的な文書を書く感覚でまずは HTML を作成
•
•
とりあえず必要最低限の要素で作成
見せたいものから順番に書く事を意識
例えばブログなら記事よりも先にメニューがあれ
これあるのはチョットオカシイ
必要に応じて追加すればよい
*
html
head
body
title
div.section
h1
div.section
h2
div.section
h3
div.section
p
h3
p
strong
a
div.section の入れ子
•
一つの見出し (hn) に一つの div
•
•
•
見出しの範囲を構造的に明示
見出しレベルが低くなるたびに入れ子に
見た目の分離と言うけれど…
•
CSS を書きやすい HTML を意識する事も大事
<div
class=”section”>
<h1>ちゃんとCSSするためのスタイルガイド入門</h1>
<div
class=”section”>
<h2>実践編</h2>
<div
class=”section”>
<h3>柔軟な構造のHTMLのメリット</h3>
<ol>
<li>CSS
Zen
Garden
から考えるHTMLテンプレート</li>
...
</ol>
</div>
<div
class=”section”>
<h3>様々な段組みを実現するCSSライブラリ</h3>
<ol>
<li>1カラムスタイル</li>
...
</ol>
</div>
</div>
</div>
•
XHTML 2.0 の section hn 構造を意識したもの
ではない
•
•
•
文書内の構造を示す為に利用
class 名はとりあえず考えなくて良い
実際に利用する時に
そのブロックの役割を id で示す
“
•
•
よいユーザー名は
すぐに思いつかない
株式会社はてな 水野氏
”
http://itpro.nikkeibp.co.jp/article/
COLUMN/20061218/257152/
“
•
•
よい class, id の値は
すぐに思いつかない
ウェブデザイナ 上ノ郷谷太一
http://2xup.org/
”
id, class のつけかた
正直、僕もけっこう悩みます
• CSS で装飾する事を頭からはずす
• 基本的に id を使う
• 各々の役割を示す名前をつける
• 同じ役割のものが出現する場合は class を
• 規則を作っても使えない時が多かったり…
あんまり使いたくないなあ
• sidebar
• upper, middle ...
ちょっとなやむけど…
• alpha, beta ...
• first, second ...
できれば避けたいな
• できれば役割を示す名前を
• ちなみに僕は…
英辞郎のお世話になる事が多いです
• id はページにひとつ
• class は複数あってもよい
• ひとつの要素に複数指定も可能
• その要素の役割を示すという考え方を
でもそんなに堅くならなくていいと思います
CSS の分割管理
• 管理効率の向上
- 修正箇所へのアクセススピード
- 目的別に分けることでデバッグしやすい
• サンプルサイト構築のスピードアップ
- 目的にあわせて組み合わせる
- ノウハウの蓄積にも
• 環境にあわせて
- 修正箇所へのアクセススピード
- 目的別に分けることでデバッグしやすい
common.css
ぬかみそ(nukamiso)
• ブラウザごとのデフォルトスタイルをリセット
• 各要素の振る舞いを設定
• 基本、要素タイプセレクタ (特定度1点) のみ
• 汎用ブロックにpaddingを設けるより、
主要ブロックレベル要素の左右にマージンを
設けるとちょっとデザインしやすくなる
<div>
<p>
p
{
margin:
1em
13px;
}
•
3ping.org - デフォルトスタイルの差異を無くす CSS
‣ http://3ping.org/2006/04/09/0747
•
Yahoo! UI - reset.css
‣ http://developer.yahoo.com/yui
• ブラウザのデフォルトスタイルを知る
• 必要最低限の定義でリセット&調整
layout.css
• フレームワークにあわせたレイアウトの枠組み
• common.css とあわせればひとまずレイアウト
までは完成するところまで
• レイアウトの種類にあわせていくつか用意しても
良いかも
theme.css
• デザイン情報
• 細かいレイアウトの調整
• レイアウトの種類にあわせていくつか用意しても
良いかも
component.css
• 良く利用するスタイル定義を管理
• ノウハウの蓄積
こんなふうに
組み合わせれば
様々なタイプの CSS ファイルが作れる
•
•
実際これだけで効率化は正直難しいけど…
でも数パーセントの節約は可能
クリエイティブな部分に時間を割ける!
outline.css
• 要素の枠を表示するCSSファイル
• border を利用していないのでレイアウトに影響
しない
• デバッグ、要素の振る舞いの確認
•
一元管理するために CSS は
やっぱり外部ファイルで
•
特定度の高い style 要素、属性はその属性の存在
するページのみ有効なので極力利用しないことを
オススメ
import.css
@charset
"utf‐8";
@import
url("common.css");
@import
url("modules.css");
@import
url("theme.css");
CSS のかきかた
CSS の視認性を上げるわけ
•
CSS はそもそも柔軟なフォーマット
本当は、もともと human readable
•
編集者によってかきかたが違うと、それを整える
のに無駄な時間が発生してしまう
•
•
•
だれが見てもルールに基づいていれば読みやすい
ミスが減る
分割管理とあわせてさらに効率アップ!
おかんに部屋を片付けられて
どこになにがあるかわからなくなってしもた
セットフォーマットルール
•
•
•
複数のセレクタ指定の際はカンマのあと改行する
セレクタの後は一文字分の半角スペースのあと『 { 』
プロパティのは各々一行にまとめ、行頭には2も自分
の半角スペースでインデント
•
•
•
•
•
プロパティの後はスペース無しに『 : 』
『 : 』と値の間には一文字分の半角スペース
値の最後は『 ; 』で終了
『 } 』はインデントしない
セットごとに空白行を設ける
selector,
selector
{
property:
value;
}
selector
{
property:
value;
}
セレクタに関するルール
•
•
どこの誰かわかりやすく
単語の区切り文字は『 - 』で
プロパティに関するルール
•
•
結構ひとそれぞれ十人十色
仕様上の分類を基準に並べる
•
•
•
書く分類ごとのプロパティは仕様書通り
編集する可能性の高いものほど後に
簡略化プロパティは省略値がリセットされるので
使うプロパティをきめておく
•
margin, padding, background が無難
値に関するルール
•
•
•
0 には単位をつけない
line-height にも単位をつけない
外部ファイルの参照方法
•
•
パスの指定法
URIを引用符で囲まない
スタイルシートを書く時のガイドライン
http://2xup.org/log/2006/07/11-1956
CSS ハック
•
まずミスが無いか確認
•
•
magin とかやっちゃってないか
特定度をもう一度チェック
•
•
Validator 通しましょう
•
できるだけアップデートされない環境を対象に
高機能なエディタならsyntaxなどで書き間違いは
判る・減る
•
•
•
•
Vim (*)
SkEdit (Mac)
Intype (Win)
秀丸
試して使おう!ハック!ハック!
•
試して納得しないとコワいので試したものをまと
めて公開しています
•
http://xrl.us/uzad
• できれば Valid な方がいいよね
• やっぱり少ない方がいいよね
• というのを心がけるのも大切
ソースコードは
ソースコードは
未来の自分へのメッセージ
• グループにわかれて普段、作業をすすめて
いく上で気をつけている事などを共有し、
ルールをつくってみましょう。
• 全部決める必要はナッスゥイング
• 例えば簡略化プロパティを使うプロパ
ティと使わないプロパティなどを決める
だけでもオケイ
• 後ほど発表
• 質問も受け付けます
• ブログをお持ちの方はブログに書いてみま
せんか?(output)
• この講座参加者の方々向けの Wiki を用意
しました(share)
• 僕は今日いっぱいアウトプットしたので、
今度はみなさんからフィードバックが欲し
いです(input)
http://123.writeboard.com/f636b6a307b0a883d
pass: elepahntism
ありがとうございました
質問はその場で回答できない場合もありますが
個別にどうぞ
Fly UP