原文連接:http://www.dudo.org/article.asp?id=253
XHTML規範中有一條標準就是每個XHTML標籤都有一個結束標記。那麼對於HTML中原來不帶結束標記的元素,則在該結束前加上/來關閉這個標籤,如,<img>標籤原來在HTML中的寫法:
<img src=... alt=...>
到了XHTML中,就應該在>前增加一個/來關閉這個標籤,為了防止某些老式瀏覽器不認識這種寫法,因此要在/前加上一個空格(HTML兼容性標準):
<img src=... alt=... />
這似乎是說在開始標記中加上一個/就可以關閉掉這個標籤。特別是對於空內的標籤來說,似乎使用這種寫法更簡潔了。比如說,
<div class=clear></div>
這是在清除浮動(閉合浮動元素)中經常用到的一段代碼。那麼它似乎可以樣寫:
<div class=clear />
是的,<div>元素可以為空,這樣寫沒有問題,但是我們對其它標籤也使用類似的寫法會出現什麼樣的後果呢?如在<head>中引入外部Javascript文件,我們一般這麼寫:
<script type=text/javascript src=... language=javascript></script>
既然沒有內容為空,我們們可不可以寫成
<script type=text/javascript src=... language=javascript />
我們發現,這樣的寫法在瀏覽器要么不起作用,要么會出錯,多數情況下,瀏覽器會認為這個標籤沒有關閉,而錯誤地認識<script>之後的所有內容都是Javascript代碼,所以會產生錯誤。再如,
<textarea id=tt cols=10 rows=8 />
如果在瀏覽器運行這段代碼,你會發現從<textarea>開始,之後的所有XHTML代碼都會被當作文本框的內容出現在文本框內。
這樣看來,HTML4.0中已經存在成對的標籤在XHTML中必須使用已有的結束標籤。那麼<div>為什麼可以呢?其實,<div>也不可以,只是<div>的在瀏覽器沒有那麼明顯的顯示而已。而諸如<span />一類的寫法就更加不正確了,首先<span>本身有關閉標籤</span>,此外<span>標籤內容不能為空白(純空格也不行)。也就是說除了<img>、<hr>、<link>、<br>等標籤可以使用/關閉外,其它的元素必須使用</...>,否則會出現不可預料的問題。