TL;DR

Cascading Style Sheets の略。HTML や XML(SVG、MathML などを含む)で書かれた文書の体裁や見栄えを表現するためのスタイルシート言語。W3C が標準化している。

なぜ必要か

MDN によると、CSS は要素が画面上で(あるいは紙や音声といった別のメディア上で)どう表現されるかを定義する。W3C も、CSS をオープンな Web プラットフォームの中核となる言語の 1 つとし、Web の文書にフォント、色、余白などのスタイルを加えるために使うと説明している。

仕組み

CSS1、CSS2.1、CSS3 といった版数は、CSS 2.1 以降は使われていない。仕様の範囲が大きくなり、機能ごとに進み具合が違ってきたので、今は機能ごとのモジュールに分けて勧告を出している。各モジュールは「CSS Color Module Level 5」のようにレベルを持つ。W3C は毎年、実装できる状態になった部分をまとめたスナップショットを公開している。

[作って学ぶ]ブラウザのしくみ 第1章 によると、ブラウザは CSS を文字列からトークンに、トークンから CSSOM というツリー構造に変換して、各ノードのスタイルや大きさ、位置を決める。

注意点

同じ要素に競合する宣言があるときは、詳細度でどれを適用するかが決まる。

関連

出典