HTML講習5

一つ前

[id:tsugehara:20060621:1150860862]

概要

ここの講習はどうしよっかな、って感じの属性についての解説。
こういうリファレンス見てね系の学習って、多分講習でやる意味はほとんどない。
わかりづらいところや使ってはいけないところというのを解説したかったが、strictの解説を除外した以上そんなに触れる事もないし。
悩みつつ開始。

定義済み属性

属性とは

まずはおさらいしましょう。
属性とは「<div align="right">」でいうところの「align="right"」の部分を指し、より詳細に言うと「align」が属性名で「right」が属性値と解説しました。
本項ではこの属性について少し掘り下げて解説していきます。

属性の種別

属性には大別して以下の種類があります。

  1. 中心属性
  2. 国際化属性
  3. カスタム属性
  4. 共通イベント
  5. カスタムイベント

1〜3はHTMLの文書やレイアウトを制御するためのもの、4〜5はスクリプトとの連動によって動的なHTMLを構築するためのものです。
余談ですが、一般的には「カスタム属性」とは言わず単に「属性」、カスタムイベントとは呼ばず単に「イベント」と呼んでいるようですが、本文書では特定の要素に指定出来るものには全て「カスタム」を付けています。

中心属性と国際化属性

中心属性と国際化属性は、ほぼ全ての要素に指定できます。
DTDにおいて中心属性は「coreattrs」、国際化属性は「i18n」として定義されています。これと「events」(後述)を組み合わせた属性グループが「attrs」として定義されており、このattrsが適用されない「ほぼ全て」に含まれない要素については、後日DTDで確認いただければ幸いです。
例えばSTYLE要素には国際化属性しか指定できない、BRには中心属性しか指定出来ない等、突き詰めていくと結構個性があります。ありますが、これらの属性を使用したい時に指定出来ないケースは皆無に近いので、本項では解説しないものとします。
この「attrs」を、一般的には「共通属性」と呼称します。


さて、中心属性は以下四つの属性で構成されます。

属性名 指定出来る値 解説
id 65536文字以内の、「:._-」の記号と英字で構成される、先頭文字が英字で始まる文字列。大文字小文字の区別をするか否かは解釈が分かれています。 文書内の一意の値を指定します。要素の識別のために指定する値で、複数の要素に別々のIDを付けてはいけません、となっていますが、通常同一IDの要素は配列と見なされるので、事実上同一IDは指定出来ます。
class 複数のクラス名を半角スペースで区切って記述します。クラス名の制約はないはずですが、互換性の問題から「-.」の記号と英数字のみの使用が推奨されています。 その要素のクラスを指定します。主にCSSで使用されますが、CSSでしか使用出来ないと定義付けているわけではありません。
style スタイルシート言語と呼ばれるものを指定できます。通常はtext/cssなので、CSSを指定します。 その要素のスタイルを指定します。
title ほとんど制約はありません。任意の文字列としておきます。(正確にはCDATAという制約を受けます) 要素のタイトルを指定します。多くのブラウザでは、この値をポップアップウィンドウ形式で、マウスが重なった時に表示しているようです。音声朗読の際には、このタイトルを読み上げたりもするようです(未確認)。


idはアンカーとJavaScriptCSSが主用途になりますが、本書では詳細に触れないことにします。


classは、複数指定出来ます。classとstyleも併記出来ます。classとstyleを併記した場合、通常はstyleが優先されます。


本書はHTMLの解説であってCSSの解説ではないのですが、style属性の性質上軽く触れます。
スタイルシート = CSS」ではありません。CSSはカスケーティングスタイルシート(CascadingStyleSheet)というスタイルシート言語の一つです。代表的なCSS以外のスタイルシート言語には、XSL(Extensible Stylesheet Language)があります。
よって、style属性にCSSを記述して認識させたい場合、本来は次の指定をHEAD内に記述しなければなりません。簡単に訳すと、この文書のスタイルシートはテキスト形式で記述されたCSSだよ、という指定です。

<META http-equiv="Content-Style-Type" content="text/css">

ただ、事実上の標準として「HTMLのデフォルトのスタイルシートはtext/css」という解釈が広まっているので、本書的には別に上記記述は省略しても問題ないと考えています。ここは好みで判断してください。ちなみにGoogleでは指定されていません。


titleの使用方法は自分で考えて見てください。
今のところ、それほど有効な活用方法をWebで見受ける事は出来ません。


国際化属性は以下2つの属性で構成されます。

属性名 指定出来る値 解説
lang RFC1766で定義されている「言語コード」という指定。jaが日本語、enが英語と覚えておけば問題ないと思います。 要素内のテキストの言語を指定します。HTMLは階層構造になっているので、通常はHTML要素のlang属性にjaを指定しておけば問題はないでしょう。
dir ltr、またはrtl。 文字の方向を指定します。rtlならヘブライ語のような右から左に表記されます。ちなみにttd等縦書き指定は存在しません。省略時の値はブラウザに依存します。

国際化属性に関しては特に補足の必要ないでしょう。

一回中断しよう・・

調べながらの記述になったので体力が尽きた。
例によって水無月ばけら氏の記述は非常に参考になったのだが、デファクトスタンダードDTDを考慮すると色々調べながらじゃないと無理なので、この程度の内容を構築するのに異常なほどの時間を費やした。2時間くらいかかったかもしれない。
ということで続きは明日。
なんか属性も端折らない方がいい気がしてきた。実践を端折るか。