DOCTYPE宣告作用
網頁中用了 <!DOCTYPE html... 就表示該頁面採用了W3C標準,這樣做可以增強頁面的相容性,降低對瀏覽器的依賴性。
不加這一行,就表示頁面採用瀏覽器本身的解析標準,這樣會造成頁面在不同的瀏覽器(IE、火狐等)可能出現不同的顯示效果。
例子:
不新增docType宣告下,IE下的table標籤的樣式:
新增docType宣告下 ,table標籤的樣式:
經過計算後,樣式為:
瀏覽器呈現模式
現代瀏覽器包括不同的呈現模式,目的是既支援遵循標準的網頁,也支援為老式瀏覽器而設計的網頁。其中, Standards (標準)模式(也就是嚴格呈現模式)用於呈現遵循最新標準的網頁,而 Quirks (包容)模式(也就是鬆散呈現模式或者相容模式)用於呈現為傳統瀏覽器而設計的網頁。另外,注意Mozilla/Netscape 6新增了一種 Almost Standards (近似標準)模式,用於支援為標準的某個老版本而設計的網頁。
什麼是 doctype切換?
放在網頁頂部的doctype宣告是讓瀏覽器進入正確呈現模式的關鍵。瀏覽器自動切換到恰當的呈現模式,以便正確顯示由doctype宣告所指定的文件種類。
理論上,這應該是一個非常直觀的切換。假如doctype指出當前網頁是一個遵循標準(也就是HTML 4+或XHTML 1+)的文件,瀏覽器就會切換到Standards模式。假如沒有指定doctype,或者指定HTML 3.2以及更老的版本,瀏覽器就切換到Quirks模式。這樣一來,瀏覽器既能正確顯示遵循標準的文件,又不至於完全捨棄老式的、與標準不符的網頁。
相關文章
- DOCTYPE宣告三種型別型別
- 當使用 position 屬性時,請始終設定 !DOCTYPE 宣告:當使用 float 屬性時,請始終設定 !DOCTYPE 宣告:
- HTML <!DOCTYPE>HTML
- JavaScript塊級作用域宣告函式JavaScript函式
- !DOCTYPE —— HTML文件模式HTML模式
- document.doctype用法
- HTML DOCTYPE 標籤HTML
- Solidity語言學習筆記————25、作用域和宣告Solid筆記
- 面試— !Doctype的作用,嚴格模式和混雜模式的區別、以及如何觸發兩種模式面試模式
- JavaScript 之有趣的函式(函式宣告、呼叫、預解析、作用域)JavaScript函式
- 從【預編譯】到【宣告提升】到【作用域鏈】再到【閉包】編譯
- golang 快速入門 [8.1]-變數型別、宣告賦值、作用域宣告週期與變數記憶體分配Golang變數型別賦值記憶體
- js中宣告提升、作用域(鏈)、`this`關鍵字和箭頭函式JS函式
- Spring MVC + Mybatis + Spring Aop宣告式事務管理沒有作用SpringMVCMyBatis
- es6和es5變數宣告和作用域的不同變數
- 深入理解javascript作用域系列第三篇——宣告提升(hoisting)JavaScript
- Html-文件型別(DTD)和DOCTYPEHTML型別
- HTML <!DOCTYPE> (轉自w3school)HTML
- 關於DOCTYPE的使用和說明
- Doctype的作用?嚴格模式與混合模式,如何觸發者這兩種模式,區分它們有何意義?模式
- 全域性作用域中,用const和let宣告的變數去哪了?變數
- DOCTYPE探索【已翻譯100%】(1/2)
- XHTML 對文件型別(DOCTYPE)的驗證HTML型別
- javascript基礎(函式與方法的區別,變數作用域,變數和函式的宣告提前,函式作用域)(十五)JavaScript函式變數
- 請教Document root element "beans", must match DOCTYPE root "null"BeanNull
- JS變數宣告和函式宣告提升JS變數函式
- 《前端實戰總結》之變數提升,函式宣告提升及變數作用域詳解前端變數函式
- PL/SQL 宣告SQL
- 深入解析JS變數宣告和函式宣告提升JS變數函式
- 淺談JS變數宣告和函式宣告提升JS變數函式
- 提升的函式宣告會覆蓋同名變數宣告函式變數
- TypeScript 變數宣告TypeScript變數
- JavaScript 宣告變數JavaScript變數
- JavaScript之宣告提升JavaScript
- 5.7 屬性宣告
- inline 宣告inline
- java 宣告物件(轉)Java物件
- 06函式宣告函式