BOOKS
by Sukeharu Kano / 狩野祐東 著書

CSSのバージョン、誤解を解く

2013-05-29

HTML5の登場とともに注目されているCSS3。誤解している人が多いのですが、CSS3(正確にはCSS level 3)はCSS2.1の上位バージョンというわけではなく、ほぼ「追加機能」と考えてよいものです。

スラスラわかるHTML&CSSのきほん』p.122

CSS 3はCSS 2.1の追加機能

 CSS 3とは、CSS 2.1以降に追加された機能、または提案されている機能の総称で、いままでのCSSに置き換わるようなものではありません。CSS 3という「バージョン」はそもそも存在しません。「こんな機能があったらいいなあ」という希望(または要望)をもとに、CSS 2.1に付け加える形で仕様が提案され、一部はブラウザに実装されている機能のことを指します。
 CSS 2.1以降に登場した新しい機能、つまりCSS 3として取沙汰されている機能は、そのほとんどがプロパティです。セレクタもあります。あとはremなどの単位や、新しい@ルールなどが追加されています。これらは、セレクタならセレクタ、単位なら単位、プロパティや@ルールはその機能ごとに「モジュール」と呼ばれる小さな仕様書が作られて、それぞれ機能追加提案がなされています。

 あくまで追加機能なので、すでにある機能や、カスケード順序・継承・ボックスモデルといったCSSの根本的な概念が再定義されているわけではありません。CSS 2.1以外に、それらに新たに言及した仕様書やドキュメントもありません。あくまでCSS 3は、CSS 2.1をベースとして、ここ数年間で新たに付け加わった機能をまとめてそう呼んでいるにすぎないのです。

 最近、「もうCSS 3の時代なんだからCSS 2.1は必要ない」などと言う人を何人か見かけましたが、これは大きな間違いです。どんなに最新テクニックを駆使したレイアウトをしても、記述内容のほとんどはCSS 2.1で定義済みのプロパティだったり、セレクタだったりします。そもそも考え方はCSS 2.1からなにも変わっていません。
 CSSに関して言えば、下手にバージョンを気にすると習得の妨げになると私は思っています。書籍でも「気にする必要はない」(Note「CSSのバージョン」p.122)と書いているのはそのためです。