個別記事
長い子孫セレクタをインデントする
- この記事が属するカテゴリー
- CSS
子孫セレクタをうまく使うことで、スタイルのためだけに ID や クラスを付与することなんかを避けることが出来るわけだけど、状況によっては深い階層の要素を指定するために子孫セレクタがとんでもなく長くなる場合がある。例えば、最近見た他人が書いたコードで一番長かった子孫セレクタなんかは、こんな感じ。
#content-body div.collapsing-block.pseudo-collapsed .collapsing-btns .toggle-collapse {
property: value;
}
基本的に、セレクタ内には空白文字を挿入することが可能なんだけど、改行やインデントも空白文字のひとつに含まれる。そこで、長いセレクタに改行、インデントをうまく使うことで、視認性を高めることができるかもよってのが今回のアイデア。上記の長い子孫セレクタに改行・インデントを取り入れてみると、こんな感じ。
#content-body
div.collapsing-block.pseudo-collapsed
.collapsing-btns
.toggle-collapse {
property: value;
}
キモイっちゃ、キモイ書き方だけど、階層構造も分かるし、主体となる要素(子孫セレクタの一番最後のセレクタ)も一目で分かるし、意外と視認性が高いと思ってるんだけど、意外とこんな書き方をしている人っていない。あまりにも長いと感じる子孫セレクタは、こうやって書いてみると良いかもしれないよ :)
これは去年、某雑誌にも寄稿したことがあるネタなんだけど、リハビリ代わりに書いてみた。今年はもうちょっとここを更新していきたいなあと思っている次第。
2008-01-10T01:47:52+09:00
| コメント (3)
| トラックバック (0)
|
関連性が高いエントリー 5 件
- こんなセレクタが CSS にあれば便利なのにと思うセレクタ
- 重い画像を読み込む際のインジケータをCSSで表示
- CSS3 の target 疑似クラスで脚注を動的に表示する
- グリッドレイアウトのための背景画像
- カラー関連の情報を CSS 内に記述
トラックバック
- このエントリーのトラックバックURL:
- http://WWW.lucky-bag.com/cgi/mt/mt-tb.cgi/413
"長い子孫セレクタをインデントする"へのトラックバックはまだありません。
コメント
- コバ さんからのコメント
さすがに最初の例だと見にくすぎですよねw
ただそれだけ長いセレクタが必要になってる時点でどうかとも思ったり。
こういうセレクタがあるってことは、おそらく他のセレクタも結構長いんじゃないかと…。効率的なコンポーネント化の手法なんかもお聞きしたいですー。
- 2008年01月10日 11:20
- コバ さんからのコメント
> そうそう、コンポーネント化についてはモヤモヤと考えてて、まとまったら書こうかなと思ってます。
おっ、是非是非楽しみにしておりますー。
- 2008年01月15日 14:14
コメントしてください
コメント内ではタグは一切使えません。コメント内にてタグを表記したい場合は、お手数ですが、文字実体参照を利用して < を < 、> を > とそれぞれ置き換えてください。
![[TypeKey Profile Page]](http://www.lucky-bag.com/nav-commenters.gif)