盒子模型(Box Model)關(guān)于更多CSS核心概念的文章請(qǐng)關(guān)注GitHub——CSS核心概念。 當(dāng)對(duì)一個(gè)文檔進(jìn)行布局的時(shí)候,瀏覽器的渲染引擎會(huì)根據(jù)標(biāo)準(zhǔn)之一的 CSS 基礎(chǔ)框盒模型(CSS basic box model),將所有元素表示為一個(gè)個(gè)矩形的盒子。所有 HTML 元素可以看作盒子,在 CSS 中,Box Model 這一術(shù)語(yǔ)是用來設(shè)計(jì)和布局時(shí)使用。 CSS 盒模型本質(zhì)上是一個(gè)盒子,封裝周圍的 HTML 元素,每個(gè)盒子由四個(gè)部分(或稱區(qū)域)組成:內(nèi)容(Content),內(nèi)邊距(Padding),邊框(Border),外邊框(Margin)。盒模型允許我們?cè)谄渌睾椭車剡吙蛑g的空間放置元素。 下面的圖片說明了盒子模型(Box Model): CSS 盒模型不同組成部分的說明:
標(biāo)準(zhǔn)盒模型與怪異盒模型盒子模型分為兩種:第一種是 W3C 標(biāo)準(zhǔn)的盒子模型(標(biāo)準(zhǔn)盒模型) 、第二種 IE 標(biāo)準(zhǔn)的盒子模型(怪異盒模型)。 當(dāng)前大部分的瀏覽器支持的是 W3C 的標(biāo)準(zhǔn)盒模型,也保留了對(duì)怪異盒模型的支持,當(dāng)然 IE 瀏覽器沿用的是怪異盒模型。怪異模式是“部分瀏覽器在支持 W3C 標(biāo)準(zhǔn)的同時(shí)還保留了原來的解析模式”,怪異模式主要表現(xiàn)在 IE 內(nèi)核的瀏覽器。 標(biāo)準(zhǔn)盒模型與怪異盒模型的表現(xiàn)效果的區(qū)別:
瀏覽器如何解析盒模型如果是定義了完整的 doctype 的標(biāo)準(zhǔn)文檔類型,無論是哪種模型情況,最終都會(huì)觸發(fā)標(biāo)準(zhǔn)模式,如果 doctype 協(xié)議缺失,會(huì)由瀏覽器自己界定,在 IE 瀏覽器中 IE9 以下(IE6、IE7、IE8)的版本觸發(fā)怪異模式,其他瀏覽器中會(huì)默認(rèn)為 W3C標(biāo)準(zhǔn)模式。 設(shè)置盒模型解析模式我們還可以通過設(shè)置 HTML 元素的 box-sizing 來設(shè)置盒子模型的解析模式 box-sizing 的屬性值:
當(dāng)設(shè)置為 box-sizing: content-box 時(shí),將采用標(biāo)準(zhǔn)模式解析計(jì)算(默認(rèn)模式),當(dāng)設(shè)置為 box-sizing: border-box 時(shí),將采用怪異模式解析計(jì)算。如:
關(guān)于更多CSS核心概念的文章請(qǐng)關(guān)注GitHub——CSS核心概念。 |
|