一般に「HTML(Hypertext Markup Language)」という場合、広義のものと狭義のものの2種類の意味が存在する。広義のHTMLは、WWW(以下ウェブ)の根幹技術のひとつで、ハイパーリンク表現手段を持つウェブ上の文書の共通フォーマットのことを指す。対して狭義のHTMLは、XHTMLの規格と比較する場合の具体的なHTMLのそれまたはそれによって定められるものを指す。(以下特にことわりの無い限りHTMLといった場合広義のHTMLを指すものとする。)
最初のHTMLの規格は、1990年にTim Berners-Leeによってつくられた。HTMLの存在理由について、Timは『Webの創成』で次のように語っている。
Webは、双方のコンピュータのOSやフォーマット形式がどうであっても、人々が互いに情報を送ったり受け取ったりすることができるように手助けをするものにすぎない。(中略)HTTPないしはHTMLを使う必要さえない。ただし、非互換性の問題が起きたときに使えるように、これらのツールが用意されているのである。
2007年7月現在、HTMLは、Tim Berners-Leeがディレクターを務めるWWW(以下ウェブ)のコンソーシアムW3Cから「勧告」という形で公開されているHTML 4.01(注]: XHTML 1.0/XHTML 1.1)が存在するほか、ISOからもHTML 4.01の機能を限定したISO/IEC 15445:2000が策定されている。これらの規格でも定められているが、HTMLでマークアップされた文書は一般的にHTML文書と呼ばれる。
ところで、HTML 4.01とISO/IEC 15445:2000は、共にSGMLによって定義されるSGMLアプリケーションの実装例とみることができる。ウェブでHTMLと同様の役割を果たすものにXHTMLがあるが、XHTMLの規格化には、HTMLの場合におけるSGMLアプリケーションに対してXMLアプリケーションという枠組みを利用している。XMLアプリケーションはメタ言語XMLによって定められ、常に妥当なSGMLアプリケーションとなることが規格によって保証されている。これらの関係をまとめたものが以下の図1である。
定義する 実装のひとつ 定義する Web SGML -------> SGMLアプリケーション =======> HTML 4.01 ---------> HTML文書 XML --- XMLアプリケーション --- XHTML 1.0 --- XHTML文書 ↑文書の「要素」を定める ↑ハイパーリンクの表現を備える
定義から、XHTML 1.0/1.1は、共に妥当なSGMLアプリケーションでもある。次に述べるCSSは、文書との関係付けの際にこのSGMLやXMLの「要素」という原理を利用している。
CSS(Cascading Style Sheets)は、スタイルシートを実装するためのコンピュータ言語(lingua franca)のひとつである。CSSはHTML文書の「内容と形式の分離」を実現させるため1996年にTim Berners-Leeによってつくられた。ここでの「スタイルシート」とは文書の表示を指定する文の集合を指す言葉で、CSSで書かれたスタイルシートは特にCSSスタイルシートと呼ばれる。
ここで、「内容と形式の分離」とは、文書の意味内容と文書が表示されているスタイルを別々に表現するべきであるという原理のことである。「形式」は文書の体裁にあたり、「内容」は文章の論理構造にあたる。
(この「内容と形式の分離」の成立過程を、HTMLの規格に見てゆくと、まず、HTMLの仕様に初めてスタイルシートという語が出現するのはHTML 4.01である。
この規格ははじめHTML 4.0として1997年12月に定められ、HTML 4.0は1999年12月に修正が加えられ、HTML 4.01として今日に至っている。CSS Level1が1998年に定められた。)
このように、今日ではCSSスタイルシートによってHTML文書の体裁を指定することができる。実際、CSSスタイルシートは、先の3種の方法の何れかでHTML文書と関連付けられていれば一般的なウェブブラウザは認識・解釈する。CSSスタイルシートの解釈はアプリケーションによって様様であるが、特にMozilla系ブラウザはCSSスタイルシートをCSSの仕様に忠実に解釈する傾向がある。
また、今日のウェブにおいて、CSSスタイルシートがHTML文書と関連付けられている例は散見される。日本においては、1990年代後半から2000年頃迄、理由は定かではないが、一部Geekの間でCSS普及運動が高まったことがある。2007年7月現在では、W3CのサイトのトップページからCSS Nite(http://cssnite.jp/)という日本のサイトが紹介されており、CSSに関する運動を知ることができる。
ところで、究極においては、スタイルシートをHTML文書と関係づける際、ブラウザがもつ機能を含めHTML文書の体裁に関わるものを徹底的にスタイルシートと見なすという考え方がある。この考え方に基づけば、CSSスタイルシートには常にブラウザ標準のスタイルに依存しない厳密的なスタイルの記述が求められる。また、他方の極に、スタイルシートという概念を認めないという考え方がある。こちらの考え方に基づくと、CSSスタイルシートはその内容にまったく意味をなさなくなる。