很多朋友對我說,她/他有代碼潔癖,即,讓她/他寫XHTML的話,從來不願意加上額外的標籤(tag)。舉個簡單的例子,相信很多人從很多地方都看到過的:
| 代碼如下 |
複製代碼 |
<div id="nav"> <ul> <li></li> <li></li> ...... </ul> </div>
|
很多人,包括許多業界大牛,都建議你這樣寫即可:
| 代碼如下 |
複製代碼 |
<ul id="nav"> <li></li> <li></li> ...... </ul>
|
當然,我個人很欣賞第二種寫法,沒錯,簡潔明了,語義(semantic)確鑿。但請等一等,如果需要樣式化(stylish)它,哪一種可以提供更多的控制(controll)? 很明顯,第一種。
然後,這個問題就有點讓人抓狂了。一句話:你是結構(markup)優先呢,還是表現(presentation)優先?我相信,在如今這個不美好的時代,表現優先是第一準則。很多有理想的人,包括我,最後為了實現表現上的需要,標籤湯(tag soup)實際上難以避免。
所以,這隻能是個度的問題。別濫用。怎麼不算濫用,也沒有什麼準則。我個人的準則是:如果要實現一個表現上的需要,你使用超過三層的外圍標籤(wrappers?),就應該停下來仔細想想了。儘管有點老,但我還是建議你看一看SimpleQuiz上面一些有趣的討論。
為什麼會這樣?因為一切都不完美。試想一下,如果CSS能夠提供更多的規則來控制頁面上的元素,或許就不會這麼尷尬。比方說,background-image支援trlb(上右下左)四個方向不同的圖片的話,我們就不必為處理圓角而絞盡腦汁;支援從頁面上產生元素,如content的話,那麼也可以大大減少tag的使用……
XHTML?笑話。實際上目前為止沒有多少人在用XHTML,一切都是自欺欺人。XHTML is Dead! XHTML是xml,具有xml的一切優越性,但是,我們現在看到的,都是text。如果把text當作xml來處理,這是有害的(Sending XHTML as text/html Considered Harmful)。
儘管我們在Doctype上都標明了我們用的是XHTML,但是實際上我們都在用HTML。這是現實。要不那些錯誤百出的非良構的頁面怎麼可能在寬容的當代瀏覽器中顯示呢……也難怪,XHTML 1隻是HTML 4的改良而已。但是,未來的XHTML 2並不向後相容,我不知道我們使用XHTML 1的必要性何在。另外,別拿accessibility來反駁我,分離結構與表現的HTML 4並沒有跟XHTML 1有任何區別。