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