CSS スナップショット 2007と名前空間モジュールの最新版が公開
CSSワーキンググループより、CSS Snapshot 2007の最終草案と、CSS Namespaces Moduleの勧告候補が公開されています。
CSS Snapshot 2007
最終草案では、次の変更が行われました。
- ブラウザの実装状況を解説する文書ではないことを説明するため、想定読者を実装者と明記した
- CSSの定義を、CSS 2.1をベースに他のモジュールが上書きして構成されるものとした
CSS Snapshotは他のCSS仕様の完成度に依存するため、勧告になるのはまだ先と考えられます。しかし、CSSワーキンググループが何に注力しているのかを確認できる有用な文書です。
CSS Namespaces Module
勧告候補では、前回の最終草案に寄せられたいくつかのコメントが反映されています。10年ほど前から実装が始まっていることもあり、大きな変更はありません。今後も順調に勧告案となり、そして勧告されるでしょう。
HTMLとCSS名前空間
さて、次のスタイルシートは名前空間を持たないHTML 4文書に適用されるでしょうか?
@namespace xhtml "http://www.w3.org/1999/xhtml";
xhtml|body { color: #f00; }
追記(6/5): 例に接頭辞が入っていなかったため修正しました。
このスタイルシートは、XHTMLの名前空間に属するbody要素の文字色を赤にするものです。ですから、名前空間の仕組みを持っていないHTMLでは、このスタイルシートは適用されないように思えます。
しかしながら、このスタイルシートをブラウザで表示してみると、XHTML文書とHTML文書どちらにも適用されます。これはブラウザがCSS名前空間に対応していないのではなく、HTML 5で「HTMLの要素は http://www.w3.org/1999/xhtml
に属する」と定義されていることによります。
HTMLとXHTMLを分けスタイルを適用させたい場合は、属性セレクタを利用することで対応できるでしょう。
html p { /* HTML, XHTML 両方 */}
html[xmlns] p { /* XHTML 用のスタイルを上書き */ }
CSS3セレクタの否定擬似クラスを利用すれば、html:not([xmlns]) p
と書くこともできるでしょう。
日本語訳も更新
さて、今回も変更を反映した日本語訳を公開しています。
その他の仕様書については、日本語訳一覧にまとめていますので、ご利用ください。