CSSとは簡単に言うと、コンテンツのレイアウトをきめ細やかに表現するための指示を専門するものです。
CSSは、Cascading Style Sheets
:カスケード・スタイルシートの頭文字を取った略語で、HTML(XHTML)、およびHTML5がタグを利用して文書(情報・コンテンツ)の構造を構成し、CSSがWebページの見た目やデザインのレイアウトを定義する役割をもっています。
ここで、CSSは視覚表現[すなわち表示デバイス=画面]だけではなく、音声(マイク、スピーカー)や印刷(プリンター)などといった異なるデバイスに応じたプロパティが用意されていることも気にかけてください。
広義で「スタイルシート」と云った場合は、XMLデータを整形して表現するXSLも含まれます。
(X)HTMLが構造化であるのに対して、CSS
はプレゼンテーションを指定することはもう理解していただいたでしょう。つまり元々これらは分離させることを前提に策定されていることも理解する必要があるでしょう。
詳しく知りたい方は、世界標準化団体であるW3Cの勧告「Web Content Accessibility Guidelines 1.0[英語]」またはこの日本語訳:ウェブコンテンツ・アクセシビリティ・ガイドライン 1.0を参照ください。
スタイルシートの定義は、HTMLタグ・id属性・class属性のそれぞれに適応できます。
では、しばらく歴史的背景を探ってみましょう。
'90年代前半、つまりMicrosoft Windows 95が発売されるまでは、Netscap Navigatorが最も使われていたブラウザであった。
しかし、Windows 95が発売され、Microsoft Internet Explorerが同梱されてからシェア獲得合戦が始まった。
このような状況で、Webコンテンツ作成者(あるいは技術者)は次のような問題をかかえた。
以下に、HTML・CSSの誤用例を挙げる
WEBコンテンツは、世界中のブラウズ機能を搭載した機器からデータを取得して読むものです。従ってよくみかける、「このサイトはIE4以上、800×600ピクセル以上で見てください」などといった制限付きのページをよくみかけますが、これはマイクロソフトの回し者と思ってしまう…。
スタイルシートとは、情報(コンテンツ)に表現力を提供するための仕組みです。
モダンブラウザの定義は、これといってはっきりしていないが、「(X)HTML,CSS,ECMAScript, W3C DOMを比較的良くサポートするブラウザ」の総称です。以下に代表的なブラウザを列挙する。
一応上記定義でいうとMicrosoftのIE6以上も含まれるのですが、独自仕様が色濃いためあえて外して語ることが多いようです。
かつては、障害者や高齢者対策というのが常識でしたが、今後は利用者の年齢・国籍・障害・利用環境などの相違をクリアする必要性が問われている。
class
名は、semantics(意味論、記号論)に配慮して付けるとされている。つまり、1つのコンテンツ(HTML)に対して、複数のスタイルシートを併用するような場合、“border4px
”,“prettybackground
”は悪い例です。
このコンテンツを作成するジェネレーターは、ez-HTMLですが、そこのサイトのトップページでは実にシンプルにHTMLが構成されており、CSSを切り替えることで様々なプレゼンテーションを実現しているので参考になると思います。
CSSの作成していると、機能がたくさんになって、不具合があったり微調整する際に探すのに苦労したことはないでしょうか。
そこで、こんな手法もあるよ、という程度で紹介します。
1.Universal Reset:共通のリセット 2.Layout blocks :ブロックのレイアウト 2-1. Container :ページ本体 2-2. Header :ヘッダー部分(Heddingタグではありません) 2-3. Middle :本文 2-4-1. Column :コラム 2-4. Footer :フッター 2-4-1.address
タグで記述する部分 2-4-2. copyright 著作権情報 3.Block :ブロック系の指定 3-3. Topic Path :パンくずリスト 3-4. Menu :メニュー 3-5. Sidebar :サイドバー 3-7. Comments :コメント(フォーム含む) 3-8. Contents :記事関係 3-8-1. Title :記事タイトル関係 3-8-2. Meta :記事の日付などの表示 3-8-3. Article :記事本文 3-8-4. Anchor :リンク/アンカー関係 3-9. Table :テーブル 3-10. Form :フォーム入力 4. Inline : インライン要素 4-1. Phrase :文字修飾 4-2. FontStyle :フォントスタイル 5. Page specific : 表示ページで特有 6. Browser specific :ブラウザー毎に特有
基本的に、というかHTMLのエンコードと同じエンコードをお勧めします。
AJAXによって自動生成されます。