履歴もしくは日誌
2005 年 9 月の履歴(もしくは日誌)
2005 年 9 月
9 月 7 日
CSS signature について
CSS signature ってのは「naoya のはてなダイアリー」で初めて知りした.「naoyaのはてなダイアリー - CSS signature」を読んだ範囲では,閲覧者側が Web ブラウザーのユーザスタイルシートに個々の Web サイトに対しての設定を書き込めるように,body の id を振るようにしようという話らしいですね.
<body id="onohiroki-cycling-jp"> となっていれば,スタイルシートに body#onohiroki-cycling-jp p {font-size: 12pt;} なんて指定をすれば,本文のテキストが 12 ポイントで表示されるようとか指定できます.よく見に行く Web サイトで,見にくいところがあれば,自分でスタイルシートを書いて,ユーザスタイルシートとして自分の Web ブラウザに登録しておけば Web サイト制作者のスタイルシートよりもユーザスタイルシートが優先されるわけです.これはおもしろいですね.手軽だし.
でも,どうして body 要素なんだろう.html 要素の id ぢゃだめなのかな?
(追記:kota さんのご指摘で HTML 4.01 Specification を確認したら html 要素では id 属性持てないようです.なるほど!)
例えば example.com というサイトで Weblog サービスをしていたとしましょう.ユーザ ID が onohiroki の Weblog が http://blog.example.com/onohiroki/ だとします.
[削除:html 要素の id を example-com として,body 要素の id を blog-example-com_onohiroki ってすると便利そう.example.com 全体に対するユーザスタイルシートと,特定ユーザの blog に対するユーザスタイルシートをかき分けられるから.]
Weblog サービスの為の CSS signature の為の id の文字列がが特定ユーザが識別できるように ユーザ ID 込みだと,Weblog サービス全体に適応するってのをどうするかが気になります.
CSS の定義で,body[id~=blog-example-com] という指定が,現在使われているほとんどの Web ブラウザで有効なのであれば <body id="blog-example-com onohiroki"> っていう書き方でもよいですね.Safari と Firefox と Opera では有効なようでした.他は未確認.id の属性値をスペース区切りで列挙するのであれば,柔軟な指定ができます.
- body#blog-example-com という指定
- id 属性値に blog-example-com という値が含まれている場合にマッチ
- blog.example.com に対してのスタイルシートを定義
- body[id~=blog-example-com][id~=onohiroki] という指定
- id="blog-example-com onohiroki" と両方とも指定されている場合にマッチ
- blog.example.com/onohiroki/ に対してのスタイルシートを定義
このように書き分けられるから <body id="blog-example-com_onohiroki"> という書き方よりは <body id="blog-example-com onohiroki">という書き方が良いと思います.
でも onohiroki などのユーザ ID をそのまま id 属性値に使うのは良くないかも.良くないなら blog-example-com と blog-example-com_onohiroki を列記かな.
id の命名規則があいまいな件は,衝突さえ起こらなければ良いのではないかと思います.
(追記:あとからちょっと書き換えました.blog-example-com と blog-example-com_onohiroki を列記はどうかという話を最後にして,CSS のセレクタの説明では,id="blog-example-com onohiroki" を前提にしました.そうしゃないと [id~=blog-example-com][id~=onohiroki] という指定が意味をなさないから...)
(追記:id 属性値は空白区切りで値を列挙できないから,CSS で ~= セレクタを使って [id~=blog-example-com][id~=onohiroki] という指定はできない!)
Trackback URI http://onohiroki.cycling.jp/tb/tb.cgi/weblog_d20050907n1 TrackBack