XHTML 1.0 StrictやXHTML 1.1ではいくつかの要素・属性が廃止されている。これらは「非推奨要素・属性」と呼ばれ、主に視覚表現に関するものであるため、シンプル&クリーンなXHTMLのためには使わないほうがよい。前回に引き続き、非推奨属性の代替方法を見ていこう。

11. (html要素)version属性

 html要素のversion属性は、厳密にはその機能をそのまま代替する方法は存在しないが、文書型宣言を指定することで代替される。

[XHTML 1.0 Transitional/Frameset]
<html version="XHTML 1.0 Transitional">

[XHTML 1.0 Strict/1.1]
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">

12. (img、object要素)align、border、hspace、vspace属性

 img、object要素のalign属性は、値が「top」「middle」「bottom」の場合はCSSのvertical-alignプロパティで、値が「left」「right」の場合はfloatプロパティで代替する。border属性はborderプロパティで、hspace属性とvspace属性はmarginプロパティで代替する。

[XHTML 1.0 Transitional/Frameset]
<img src="images/logo.gif" alt="サイバーガーデン"
align="middle" border="2" hspace="10" vspace="5" />

[XHTML 1.0 Strict/1.1]
img {
vertical-align: middle;
border: 2px solid;
margin: 5px 10px;
}
:
:
<img src="images/logo.gif" alt="サイバーガーデン" />

13. (input要素)align属性

 input要素のalign属性は、値が「top」「middle」「bottom」の場合はCSSのvertical-alignプロパティで、値が「left」「right」の場合はfloatプロパティ代替する。

[XHTML 1.0 Transitional/Frameset]
<input type="text" value="" size="30" align="middle" />

[XHTML 1.0 Strict/1.1]
input { vertical-align: middle; }

14. (legend要素)align属性

 legend要素のalign属性には代替する方法はない。

15. (li要素)type、value属性

 li要素のtype属性は、CSSのlist-style-typeプロパティを、id/classを割り当てたli要素に適用して代替する。value属性には代替する方法はない。

[XHTML 1.0 Transitional/Frameset]
<ul>
<li type="disc">項目1</li>
<li type="circle">項目2</li>
<li type="square">項目3</li>
</ul>

[XHTML 1.0 Strict/1.1]
li.di { list-style-type: disc; }
li.ci { list-style-type: circle; }
li.sq { list-style-type: square; }
:
:
<ul>
<li class="di">項目1</li>
<li class="ci">項目2</li>
<li class="sq">項目3</li>
</ul>

16. (link要素)target属性

 link要素のtarget属性には代替する方法はない。

17. (map要素)name属性

 map要素のname属性は、id属性で代替する。ただし、XHTML 1.0では後方互換性を考慮してname属性とid属性の両方を指定し、XHTML 1.1ではid属性のみを指定するという点に違いがある。

[XHTML 1.0 Strict/Transitional/Frameset]
<map name="c001" id="c001">

[XHTML 1.0 Strict/1.1]
<map id="c001">

18. (ol要素)compact、start、type属性

 ol要素のcompact属性とstart属性には代替する方法はない。type属性は、CSSのlist-style-typeプロパティで代替する。

[XHTML 1.0 Transitional/Frameset]
<ol type="1">
<li>項目1</li>
<li>項目2</li>
<li>項目3</li>
</ol>

[XHTML 1.0 Strict/1.1]
ol { list-style-type: decimal; }

19. (pre要素)width属性

 pre要素のwidth属性は、その機能をそのまま代替する方法は存在しないが、CSSのwidthプロパティを指定し、包含ブロックの幅を制限することで代替する(値をem単位で指定するとより近い代替となる)。

[XHTML 1.0 Transitional/Frameset]
<pre width="50">>

[XHTML 1.0 Strict/1.1]
pre { width: 50em; }

20. (script要素)language属性

 script要素のlanguage属性は、その機能をそのまま代替する方法は存在しないが、type属性を指定することで代替される。

[XHTML 1.0 Transitional/Frameset]
<script language="JavaScript1.2">

[XHTML 1.0 Strict/1.1]
<script type="text/javascript">

 では、次回も非推奨属性の代替方法を見ていくことにする。