淺談瀏覽器兼容性模式[按F12便知]

面試官:請你談?wù)剺?biāo)準(zhǔn)(Standards)模式、怪異(Quirks)模式、準(zhǔn)標(biāo)準(zhǔn)(Almost Standards)模式,當(dāng)你打開IE9時候會看見,瀏覽器模式,文檔模式,兼容性視圖,這些又是什么?
好吧,一點點來:先明白一個詞DTD(文檔類型定義),也就是你F12后,頁面里第一行的一串東西,即doctype聲明。
這一串東西就是告訴瀏覽器你要用何種模式來渲染頁面,說白了就是讓瀏覽器用何種標(biāo)準(zhǔn)的CSS進(jìn)行頁面布局。
有三種模式供你選擇:
- 標(biāo)準(zhǔn)模式(Standards Mode)
- 準(zhǔn)標(biāo)準(zhǔn)模式(Almost Standards Mode)
- 怪癖模式(Quirks Mode)
官方定義:
- 標(biāo)準(zhǔn)模式(Standards Mode)
標(biāo)準(zhǔn)模式中,瀏覽器嘗試給符合標(biāo)準(zhǔn)的文檔在規(guī)范上的正確處理達(dá)到在指定瀏覽器中的程度。
- 準(zhǔn)標(biāo)準(zhǔn)模式(Almost Standards Mode)
它按照傳統(tǒng)的做法來實現(xiàn)表格單元格的垂直尺寸而不是嚴(yán)格的遵照CSS2規(guī)范,更接近Mozilla的準(zhǔn)標(biāo)準(zhǔn)模式而不是Mozilla的標(biāo)準(zhǔn)模式。
- 怪癖模式(Quirks Mode)
怪癖模式中,為了避免“破壞”那些根據(jù)在20世紀(jì)90年代末流行的實踐創(chuàng)作的頁面,瀏覽器違反了現(xiàn)代的Web格式規(guī)范。不同的瀏覽器實現(xiàn)了不同的怪癖行為。IE6、7和8中,怪癖模式有效地凍結(jié)在IE5.5 。其他瀏覽器中,怪癖模式是對準(zhǔn)標(biāo)準(zhǔn)模式的少量偏移。
自定義:
- 標(biāo)準(zhǔn)模式(Standards Mode)
官方規(guī)定,你跟著照做就行了。
- 準(zhǔn)標(biāo)準(zhǔn)模式(Almost Standards Mode)
在設(shè)置line-height,某些情況下的height,這兩種效果會無法正確執(zhí)行,其他和標(biāo)準(zhǔn)一樣(當(dāng)前新瀏覽器已經(jīng)放棄了此模式)
- 怪癖模式(Quirks Mode)
一種非主流模式,由于當(dāng)年IE6灰常NB,當(dāng)時所有的頁面都要符合他的渲染標(biāo)準(zhǔn),但由于標(biāo)準(zhǔn)的出現(xiàn),大量的頁面都無法適應(yīng)新標(biāo)準(zhǔn),而IE為了包容這些站點,所以保留了這種模式,也就是不規(guī)范的CSS算法,主要體現(xiàn)在盒子模型上。
觸發(fā)方式:
- 標(biāo)準(zhǔn)模式
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> <!-- 嚴(yán)格執(zhí)行 --><!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"><!-- 兼容XHTML廢棄的標(biāo)簽 -->
- 準(zhǔn)標(biāo)準(zhǔn)模式
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN">
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Frameset//EN">
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Frameset//EN">
- 怪癖模式
第一行不寫,或?qū)戝eDOCTYPE就能觸發(fā)
- 一統(tǒng)江湖式
<!DOCTYPE html> <!-- HTML5 -->
相關(guān)文章
- CSS Grid 是一種二維布局系統(tǒng),可以同時控制行和列,相比 Flex(一維布局),更適合用在整體頁面布局或復(fù)雜模塊結(jié)構(gòu)中,這篇文章主要介紹了前端CSS Grid 布局詳解,需要的朋2025-04-16
CSS Padding 和 Margin 區(qū)別全解析
CSS 中的 padding 和 margin 是兩個非?;A(chǔ)且重要的屬性,它們用于控制元素周圍的空白區(qū)域,本文將詳細(xì)介紹 padding 和 margin 的概念、區(qū)別以及如何在實際項目中使用它們2025-04-07- will-change 是一個 CSS 屬性,用于告訴瀏覽器某個元素在未來可能會發(fā)生哪些變化,本文給大家介紹CSS will-change 屬性詳解,感興趣的朋友一起看看吧2025-04-07
- 本文給大家分享在 CSS 中,去除a標(biāo)簽(超鏈接)的下劃線的幾種方法,本文給大家介紹的非常詳細(xì),感興趣的朋友一起看看吧2025-04-07
- 在前端開發(fā)中,CSS(層疊樣式表)不僅是用來控制網(wǎng)頁的外觀和布局,更是實現(xiàn)復(fù)雜交互和動態(tài)效果的關(guān)鍵技術(shù)之一,隨著前端技術(shù)的不斷發(fā)展,CSS的用法也日益豐富和高級,本文將2025-04-07
css中的 vertical-align與line-height作用詳解
文章詳細(xì)介紹了CSS中的`vertical-align`和`line-height`屬性,包括它們的作用、適用元素、屬性值、常見使用場景、常見問題及解決方案,感興趣的朋友跟隨小編一起看看吧2025-03-26淺析CSS 中z - index屬性的作用及在什么情況下會失效
z-index屬性用于控制元素的堆疊順序,值越大,元素越顯示在上層,它需要元素具有定位屬性(如relative、absolute、fixed或sticky),本文給大家介紹CSS 中z - index屬性的作用2025-03-21- 文章詳細(xì)介紹了CSS中的打印媒體查詢@mediaprint包括基本語法、常見使用場景和代碼示例,如隱藏非必要元素、調(diào)整字體和顏色、處理鏈接的URL顯示、分頁控制、調(diào)整邊距和背景等2025-03-18
CSS模擬 html 的 title 屬性(鼠標(biāo)懸浮顯示提示文字效果)
本文介紹了如何使用CSS模擬HTML的title屬性,通過鼠標(biāo)懸浮顯示提示文字效果,通過設(shè)置`.tipBox`和`.tipBox.tipContent`的樣式,實現(xiàn)了提示內(nèi)容的隱藏和顯示,感興趣的朋友一起2025-03-10CSS3 最強二維布局系統(tǒng)之Grid 網(wǎng)格布局
CS3的Grid網(wǎng)格布局是目前最強的二維布局系統(tǒng),可以同時對列和行進(jìn)行處理,將網(wǎng)頁劃分成一個個網(wǎng)格,可以任意組合不同的網(wǎng)格,做出各種各樣的布局,本文介紹CSS3 最強二維布局系2025-02-27