還是得注意DOCTYPE的聲明

前兩天才提到DOCTYPE的問題,今天在博客堂發現也有人爲它所困擾。在lostinet可怕的loose.dtd》這篇文章裏談到因爲使用了DOCTYPE使一個樣式失效的問題。但是仔細看了看,發現其實並不是因爲DOCTYPE在做怪,而是不正確的html代碼和沒有理解DOCTYPE造成。

下面這個html代碼是lostinet提到的失效的代碼:
<div style='height:400px;width:400px;border:1px solid red"'></div>
注意看div的style屬性,在red後面多了一個"符號,粗一看還看不出來呢。因爲多了這一個符號,這個style是一個不合乎w3c html4標準的,所以就失效了。

但是爲什麼去掉它就起作用了呢?從“頭”說起吧。
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
在網頁最頂部這一行DOCTYPE聲明,很多網頁設計者都不太瞭解它的的意思,它是要求瀏覽器按照html4過渡標準來識別你的html文本,如果瀏覽器支持DOCTYPE的話,就可以按照這個標準來分析它了。
如果沒有這個聲明的話,一些瀏覽器就按照各自兼容的模式來分析網頁,如果你使用IE5.x/IE6瀏覽器的話,去掉DOCTYPE就可以讓瀏覽器兼容分析div的style,就可以起作用了。另外如果你的DOCTYPE不完整,比如你去掉了後面那個uri地址,這個文檔標準的聲明也不起作用。

所以一旦你做了DOCTYPE聲明,而你發現你的網頁不正確的顯示,你得檢查看看你的html代碼是否符合你聲明的標準。如果你的網頁爲了獲得好像更好的兼容效果,不加DOCTYPE,這首先不是一個好的網頁編寫習慣,你的網頁可能不符合w3c的標準;其次長遠看來將得不償失,因爲這種兼容僅僅是在一個固定的瀏覽器上兼容,其他的瀏覽器不一定能夠兼容你的html代碼。爲了讓你的網頁更有生命力,建議按照w3c標準編寫網頁。

關於DOCTYPE的知識和完整列表,看看參考下面這個網頁
http://www.alistapart.com/articles/doctype/

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章