本日は先々週(2005-04-27)に続いて、第二回HTML講座が行われました。2週間のブランクが開いてしまったので、前回の内容を完全に忘れてしまっていました。私が。
というわけで、今回の講座はまず最初に前回の復習からスタートしてみました。まず嬉しかったのは、私の講義を聴いてくれている後輩が、<sub><sup>を前回に言い忘れてしまったことを指摘してくれたことです。Rubyについても指摘してもらいましたが、本講座(HTML講座I)ではHTML4.01を中心にしていくことにしたので、XHTML1.1で定義されているRuby関連は省略することとしました。HTMLに関心を持ってもらえたことは、教える側として嬉しい限りです。とりあえず、他に前回言い逃した要素(引用や省略語や頭文字語など)をはじめに簡単に説明しておきました。とにかく、「論理要素と物理要素の違い」や「文章をマークアップすることと文章を書くことの違い」について、はっきり認識してもらえたらと思います。
次に、やや早足気味、というより汎用属性などの説明を素っ飛ばしていて明らかに説明不足ですが、CSSの説明を始めました。ここでclassとidについて説明してしまいたいと思ったから、というわけではなく、まずHTMLにおける「デザイン」の概念を知ってもらいたかったからです。また、これは持論なのですが、CSSに接することによってブロック要素とインライン要素の違いを視覚的に捉えることができ、文章構造という概念からのみの思考よりもHTMLを理解しやすくなると私は考えます。まあ、これは必ずしもHTMLの理解にとってプラスに働くとは限らない(むしろある面では明らかに誤解を招くとすら思います)のですが、そこは私の教育(?)で何とかしたいと思います。
今回の講義内容は、大体以下の通りです:

"CascadingStyleSheets"の意味
Cascade:滝のように落ちる」というのは、意外と知られていないのが現状と思いますが、この単語こそがCSSの仕様の性格を端的に表していると考えます。「滝のように落ちる」というルールがどういうものなのか、具体的に説明したつもりです。すなわち、「製作者スタイルシートとユーザースタイルシートの違い」、「スタイル適用の優先順位」、「値の継承」の3点です。
製作者の意図したデザインが絶対ではないということ
製作者が指定したスタイルに対する、ユーザースタイルシートの優越性について話しました。閲覧に際する主導権は閲覧者にありますが、製作者はそのことを自覚していないことが多く、ユーザー自身もそれを放棄しているのが現状かと思われますが、CSSの「性格」を知る上では重要な点です。また、「固定スタイルシート」、「優先スタイルシート」、「代替スタイルシート」の違いについても少しだけ触れておきました。これは現行のInternetExplorerユーザーにとっては特に分かりにくい観念だと思われますが、一応。
値の継承について
ここで初めて、「親要素」や「子要素」、「孫要素」などの階層の概念について触れました。HTMLの木構造の考え方については、CSSを扱う上ではもちろんのこと、このあとも様々な場所で出てくると思われます。後輩が、空要素に対して違和感を感じてくれたことが何気に嬉しかったですが、XMLほどに重要な問題ではないので(とはいえ重要なことには変わりないのですが)、ここでは言及を避けました。
CSSの基本文法
Selector{Property:Value;}という基本から始め、classとidによる指定方法とそれらの違い、文章構造をもとにした要素の特定方法(文脈セレクタ)、!important規則などについて解説しました。適用の優先順位を決める際の値の算出方法などにも一応言及しておきましたが、「特定性の高い指定方法ほど優先される」という説明でまとめてしまったと思います。残念ながら、講義の時間が足りなくなってしまったので、メディアタイプによる指定や擬似セレクタなどについての説明はできませんでした…。
このように、今回の講座はCSSの「総則」について解説したような感じになっております。まだ説明が不十分なので、次回はこの続きから入り、続いて具体的なプロパティの解説を始めていきたいと思います。また、Boxの概念やdisplayについても十分な時間をかけて説明していきたいところです。