XHTML 1.0 ストリクトやXHTML 1.1から排除された要素
<div align>要素…文字配置を指定したブロックレヴェル要素
当サイトでは、携帯電話などカスケーディングスタイルシートをサポートしない端末向けに、あるいは論理要素に対応するものが無い場合に限って、物理要素を一部だけ解説しました。
しかしながら、実際にはまだ幾つかの物理要素があります。
ここでは、XHTML 1.0 ストリクトやXHTML 1.1などで明確に排除され、使うべきでないとされる物理要素・属性を解説しております。
ごれらの要素や属性は、携帯端末や旧式のグラフィカルなブラウザへの対策が必要など、特にどうしても必要とならない限りは使うべきでないものと言えます。
このコンテンツは、排除すべき要素や属性の解説よりも、排除されるべき理由を知るためだけにご覧頂けたらと思います。
ここで挙げる要素を用いるには、文書型としてHTML 4.01 トランジッショナルかXHTML 1.0 トランジッショナル文書型を宣言する必要があります。
これらの要素は、利用が認められているHTML 4.01 トランジッショナルかXHTML 1.0 トランジッショナル文書型でさえも、排除勧告(deprecated…多くの邦訳では非推奨
と書かれる事が多い)が出されているもので、よってそれだけ使うべきでないものと言えます。
この範疇にある属性は以下のものがあります。
これらの指定にはbackground属性以外はCSSでの色指定での十六進数六桁での指定か色名での指定が使えます。
またこれらの属性を指定する場合は、background属性以外の全属性を漏れなく記述しなければなりません。
こうしないと、ウェブブラウザの設定によっては読めなくなる場合もあります。
これらの属性を用いるデメリットとしては、CSSでやった方が差替えが容易である事が最も大きいでしょう。
<font>要素固有の属性としては以下のものがあります。
これらの属性は非常に便利なように見えますが、CSSとの兼合いが非常に面倒になります。
CSSでの属性セレクタを用いて個々の属性値を上書きする事は可能ですが、属性は多岐に亘り、記述し切るのは困難です。
例えば、文字を青で表示させている場合、CSSでの上書きは以下のようにしなければなりません。
font[color="#0000ff"], font[color="blue"] {…}
何色も使われているような場合にはいちいち書かなければならなくなります。
こういった事が問題になり、<font>要素は真先に排除すべき要素とみなされたのです。
固有の属性は<font>要素と同じですが、実際にはsize属性のみが実装されている場合が多いです。
この要素は空要素で、この要素の後は改めて<basefont>要素が置かれるまで有効となります。
一応インライン要素ですが、実際には空要素である事もあって、ブロックレヴェル要素のような使われ方をされることも多いです。
使うべきでない理由も<font>要素と全く同じです。
一般のグラフィカルなウェブブラウザでは、下線付きテキストはアンカーを表す場合が多いです。
今日ではCSSで幾らでも定義を変える事が出来ますが、それでも下線付きテキストをアンカーと誤認してしまう事は決して少なくありません。
また、これは英語文化での話しですが、英語圏では下線付き文字は斜体表示の代用としてしか見られておりません。
このため、<i>要素を残しておけば<u>要素は排除しても問題無いと判断されたのかも知れません。
字消し線を引くからと言って、必ずしも全ての環境で抹消された事を表現する事は出来ません。
<s>要素/<strike>要素はあくまでも字消し線を引く要素以外の何物でも無いからです。
重要な削除がそのように見られないと言うのは、文書を公開する立場としては非常に危険です。
また、本来好ましい文書作法ではありませんが、本音を強調するのに字消し線を引くと言う手法があります。
例えば、以下のような例を考えて見ましょう。
<p>そんな事を書いて、サーヴァ会社から削除されないかって? 大丈夫、<s>まだ</s>削除されておりません!</p>
この場合、字消し線で抹消しているように見えますが、実は字消し線を引く事により逆説的にまだ
と言う本音を強調しているとも取れる訳です。
結局、<s>要素/<strike>要素は本当の意味で抹消を表しているかと言えば疑わしいと言えるのです。
本当に抹消したいのであれば<del>要素を用いましょう。
トランジッショナル文書型では、<h○>要素, <p>要素及び<div>要素にalign属性が定義されております。
これらは、文字の配置を指定するためのものです。
align属性値としては、以下のものがあります。
align属性とCSSのtext-alignプロパティは全く別物です。
align属性は当該属性を当てた内容はブロックレヴェル要素であれインライン要素であれ全てに適用されるのに対し、CSSのtext-alignプロパティはインライン要素にのみ適用される事になっているからです。
尚、CSSでブロックレヴェル要素の配置を指定するには、当該ブロックレヴェル要素のセレクタに対して適切な値のmarginプロパティを当てるのが正当です。
<div align="center">要素と等価です。
とは言え、<div align="center">要素の場合はalign属性のみが排除の対象となるのに対して、<center>要素は要素そのものが排除の対象となります。
この事から、<center>要素を用いるくらいなら<div align="center">要素を用いる方がマシだと言う意見もあります。
<img>要素や<table>要素にもalign属性が定義されておりますが、こちらは当該画像または表を左か右に寄せると言うものです。
寄せられた場合、後続のコンテンツは廻り込むように描かれる事となっております。
しかしながら、CSSのfloatプロパティを用いれば、<img>要素や<table>要素に限らず、どんな要素でも同様の表現を行なう事が可能です。
このようにより便利な物が用意されている以上、HTML文書にいちいち記述するのはメリットが無いとも言えます。
<img>要素及び<table>要素にて定義されているalign属性での廻り込みを無効にします。
clear属性値は以下の中から撰びます。
これも、CSSのclearプロパティをブロックレヴェル要素に用いれば、その箇所で廻り込みを解除する事が出来ます。
display: block;プロパティを当てれば)有効になります。逆にブロックレヴェル要素でもインライン式の表示形式にした場合(すなわちdisplay: inline;プロパティを当てた場合)は無効になります。clear: both;プロパティとなります。<br>要素自体が好ましく無いと言う意見もあり、ましてや表示方法を制御するためだけに無意味に<br>要素を用いるのは好ましく無いと言う事なのでしょう。
<img>要素にborder属性を当てた場合、属性値のピクセル数の幅の枠線が引かれます。
<a>要素の内容となっている<img>要素では、アンカーと分かるように自動的に枠線を付けるウェブブラウザが多く、その枠線を非表示にするのに<img border="0">要素で画像を埋め込むと言う使い方があります。
border系プロパティでより多彩な枠線を引けるようになったので、当然不要となった訳です。
表関連の要素には、背景色を指定する属性が定義されております。
いずれも、bgcolor属性値としてはCSSでの色指定での十六進数六桁での指定か色名での指定が使えます。
このため、局所的に背景色を変更するために表を利用する事もありますが、そのような使い方は表の趣旨に反するばかりで無く、幾つかの問題をはらみます。
こうして見ると、排除すべき理由が如何に多いかがお分かり頂ける事でしょう。
これらは全てCSSで行なう事が可能です。