為什麼使用 DOCTYPE html

2021-05-22 16:35:15 字數 968 閱讀 4090

a doctype is a mostly useless, but required, header. —— 《html5 spec》

現在的各種web開發工具都足夠強大,支援插入模板**,因此你並不需要把這又長又臭的doctype乙個個字母的敲出來。

doctype最大的作用是讓瀏覽器用來選擇渲染模式,或者說是用來觸發標準模式。具體點說,就是設定正確的doctype進入(準)標準模式,設定了錯誤的或者沒設定doctype則進入怪癖模式。(附:doctype和渲染模式對照表)

理論上,標準模式和準標準模式的區別僅在於非ie6/7瀏覽器對於單元格裡(原文說法可能有誤,經測試所有均受影響)布局的不同處理。同事漁隱做了細緻地測試並給出了解決方案。 

update 20100203:發現iframe的布局也受到影響,解決方法和一致。

但是如果你受夠了它,你也許可以嘗試下面這個寫法:

好處顯而易見:

一、你可以輕鬆的寫下這個doctype,而不用擔心會寫錯;

二、你大概省下了105位元組字元,對於乙個每日pv達到千萬級的站點,它可以省下相當客觀流量;

三、它是向後相容的,是的,html5的doctype就是這樣寫的,並且現代瀏覽器都認識它。

如果你跟我一樣一直以為:沒有指定dtd將會開啟瀏覽器的怪異模式,這種說法是錯的!正確的說法應該是沒有定義doctype才會開啟怪異模式,也就是說你只需要定義就可以讓瀏覽器在嚴格模式(標準模式)下渲染頁面,而不需要指定某個型別dtd。

參考:1  http://www.chencheng.org/blog/2010/01/15/ppt-detail-on-html-spec/

為什麼使用指標

在實際程式設計中,既然使用變數就可以訪問資料,為什麼還用指標呢?使用指標來操縱自動變數的唯一原因是,為了說明指標的工作原理。指標真正的用途是被用於完成下列3種任務 管理自由儲存區中的資料 訪問類的成員資料和函式 按引用傳遞引數 在 函式的 工作原理 中,提到了5個記憶體區域 全域性命名空間 自由儲存...

為什麼使用Servlet amp JSP

web伺服器接收客戶請求,查詢資源,然後向客戶返回一些結果。web客戶允許使用者請求伺服器上的某個資源,並且向使用者顯示請求的結果。客戶和伺服器使用http協議進行通訊,伺服器使用http向客戶傳送html。tcp協議負責確保從乙個網路節點向另乙個網路節點傳送的檔案能作為乙個完整的檔案到達目的地,i...

為什麼使用rem?

rem font size of the root element 是指相對於根元素的字型大小單位。而與之相似的em font size of the element 是指相對于父元素的字型大小的單位。1 固定寬度的做法 主體的寬度設定為320,超出部分留白。2 響應式的做法 3 設定viewpor...