スタイルシートとは、プログラムが一定のフォーマットに基いて記述された文書を整形する過程(プロセス)そのものの事を指します。
HTML文書に限らず、XMLやSGML、あるいはそれ以外の種類の文書を、プログラムが一括して整形・処理する際には、常に「スタイルシートの過程」が存在します。
実際に文書を整形するための具体的な定義は、一般には過程としての「スタイルシート」と同じ「スタイルシート」なる呼び方をしますが、ここでは区別するために単に「スタイル」あるいは「スタイル指定」と呼びます。「整形の過程(プロセス)である」事が「スタイルシート」の本質であり、「整形のための具体的な個別の方法」は「スタイル指定の方法」として区別しておきます。
整形方式・スタイルの記述方法は、プログラムや用途、メディアによつて異ります。だから、スタイルを記述するための規則は不定です。対象となるプログラムや用途によって、スクリプトに似た記法である場合もありますし、プロパティを記述する様なものである場合もあります。
何らかの形で定められたスタイルがあって、それに基いてプログラムがHTMLの特定の要素を特定の形態で解釈・表現する時、そこには常に「スタイルシートの過程」が存在します。
Netscape NavigatorやInternet Explorerが標準で、h1要素を「見出し」らしく表示したり、table要素を「表」として表示したりするのも、スタイルが適用される過程があるためです。標準の状態で、目に見える形の「スタイル指定」がブラウザ外部に存在する訳ではありません。しかし「ブラウザ自体が、デフォルトで使用するスタイル指定を内蔵し、適用した」と見なせます。
「俺はスタイルシートなんか使用したくない」「俺のホームページにはスタイルシートの技術は存在しない」と主張するサイト制作者も存在します。しかし、閲覧者がウェブを見る際、常に「ウェブブラウザが内蔵のスタイル指定を使用する」事が予想されます。換言すると、全てのブラウザが「HTML文書を整形するために内蔵のスタイル指定を適用するプロセス」を用意した上でHTML文書を読み込み、解釈します。
HTML文書用のブラウザは、常に基本的なスタイル指定を持ちます。しかし、新しいブラウザの多くは、閲覧者、あるいは制作者が独自のスタイルを指定し、使用する事を認めます。
本文書は、HTML文書の制作者が独自のスタイルを定義し、閲覧者にアピールするために必要な基礎知識・概念・思想を提供します。
あるHTML文書が閲覧者に認識される過程で、HTML文書の整形方法(スタイル)が指定される機会は3回あります。そのため、スタイル指定の方法も3種類が定義されます。
このうち、User Agentのデフォルトのスタイル指定は、HTML文書制作者とユーザの双方がスタイル指定を持たない、あるいは、使用しない場合、緊急避難的にUser Agentが選択し、利用するスタイル指定です。即ち、User Agentデフォルトのスタイル指定の優先順位は最下位になります。
制作者のスタイル指定とユーザのスタイル指定の優先順位は、かなり微妙です。一応HTML文書制作者の意向が最優先されますが、Cascading Style Sheets level 2の規格では、ユーザのスタイル指定を最優先にする事が可能です。
ただし、制作者のスタイル指定もユーザのスタイル指定も使用できないUser Agentがこの世には存在します。Lynxの様なCUI環境におけるブラウザ、現在のスタイルシートの概念が確定する以前に開発されたブラウザがそれに該当します。その様なUser Agentは、HTML文書を整形するために、デフォルトのスタイルを強制的に適用します。
ユーザは時として、User Agentが完全なスタイルを持つ事を期待して、制作者のスタイル指定もユーザによるスタイル指定も使用しない様にUser Agentを設定します。この場合の「完全」は、「一貫性を持つ」「体系的である」「全体として整合性がある」の意味です。
スタイルシートを過程と見なす時、スタイル指定の注意点が以下の様なものである事は明かです。
逆に、次の様な事はあまりおすすめできない事となります。
スタイルシートは見た目の調整のためにあるのではありません。制作者は閲覧者のブラウザを決定できませんから、ある特定のブラウザのデフォルトスタイルに「パッチ」を当てる様な形で不完全な制作者スタイルを記述し、提供すべきではありません。制作者は常に「完全なスタイル」を記述しておくべきです。
制作者は「User Agentの一貫性のあるデフォルトスタイル」に従って、適切に整形される様、整ったHTML文書を、予め記述しなければなりません。その上で、一貫性のある制作者スタイルを用意しなければなりません。正常なUser Agentが常に文書を正しく整形・解釈する様、制作者は努めてHTML文書を記述しなければなりません。
制作者や閲覧者は「User Agentデフォルトのスタイルは常に完全である」と想定すべきです。現実のUser Agentには不備や不具合が付き物ですが、特定のUser Agentの不具合を「利用」した制作者スタイルやHTML文書は、正常なUser Agentで正しくレンダリングされなくなります。
「理想的なスタイル」を用意したUser Agentが、自前の完全なスタイルの規定を適用してレンダリングした際、正常ではない整形のされ方をする「HTML文書」は、HTML文書として不正なものである筈です。
また、Netscape Communications社は、Navigatorで「ブラウザのレンダリング機能を直接操作するためのタグ」を制作者のために提供した事があります。ヴァージョン4以前のNavigator(Mozilla Classic)は、その種の「タグ」を利用した文書を表示するのが得意です。
しかし、より多くのブラウザで適切に表示される事を望む制作者は、その種の「タグ」を利用したHTML文書を「記述しない」様に努めるべきです。Mozilla Classicやその他の古いブラウザも、適切に論理構造が記述されたHTML文書を完全な形でレンダリングします。
HTML文書の制作者は、表面的な見てくれに拘泥せず、自分の主張・意見が閲覧者に的確に伝達できる様な、より良い文章表現をすべきです。「見ばえがする」プレゼンテーションよりも、「制作者の意図が正しく伝達できる」プレゼンテーションの方が、良いプレゼンテーションです。
「ぱっと見」の印象の良さを、必ずしも否定する訳ではありません。しかし、表面的な印象の背後にしっかりとした内容がなければ、閲覧者は心を動かされないものです。最初に骨骼となる文章がある事――それが大事です。きちんとした文章ならば適切にマーク附けする事が可能です。適切にマーク附けされたHTML文書ならば、スタイルシートの介在で、最大のプレゼン効果を発揮します。
スタイルシートを適切に利用する事で、同じ一つのHTML文書が、さまざまなメディアで最大限、活用され得る様になります。HTML文書は、ウェブブラウザで見る閲覧者には「見ばえのする文書」として見え、検索エンジンのロボット(クローラ)には「有益な情報を含む文章」と判断され得ます。制作者の最小の労力が、最大の効果を発揮する様になる訳です。