CSS 21天入門:盒子模型(box model)
當(dāng)前位置:點(diǎn)晴教程→知識管理交流
→『 技術(shù)文檔交流 』
CSS 中的盒子模型,或盒模型,是 box model。它指的是我們把元素看成一個個盒子。 所以看到說盒子怎么怎么樣,實際指的是某個元素的行為如何。 box model 定義了盒子四個部分(如下)之間如何協(xié)作,最后創(chuàng)建出一個顯示在頁面上可以看到的盒子。
在講 margin 和 padding 的時候,曾用下面這張圖闡述過四個不同部分的位置關(guān)系。 區(qū)塊盒子(block boxes)和行內(nèi)盒子(inline boxes)CSS 盒模型整體上適用于區(qū)塊盒子,行內(nèi)盒子使用的只是盒模型中定義的部分行為。 具體的原因在之前介紹區(qū)塊元素和內(nèi)聯(lián)元素曾簡單介紹過,這里再來仔細(xì)看看。 display 屬性實際定義了元素(盒子)的兩種行為,一個是元素與其它元素之間的關(guān)系,也就是外部顯示行為;另一個是元素內(nèi)部元素之間的關(guān)系,也就是內(nèi)部顯示行為。 外部顯示當(dāng) display 屬性值為 block 時,它的外部顯示行為表現(xiàn)如下:
當(dāng) display 屬性值 為 inline 時,它的外部顯示行為表現(xiàn)如下:
內(nèi)部顯示默認(rèn)情況下,元素內(nèi)的元素會以標(biāo)準(zhǔn)流的方式布局呈現(xiàn),并表現(xiàn)為區(qū)塊或行內(nèi)盒子。 但可以通過 display 屬性改變內(nèi)部顯示行為,例如,display 值為 flex,它的外部行為依然是 block,但內(nèi)部顯示行為則變成了 flex,也就是后面會提到的彈性盒子。 標(biāo)準(zhǔn)盒子模型和替代盒子模型一個區(qū)塊盒子由以下部分組成:
標(biāo)準(zhǔn)盒子模型
定義了標(biāo)準(zhǔn)盒子的寬度為 200px,高度為 60px,同時定義了它的邊框為 5px,外邊距為 20px,填充為 10px。
這時,整個盒子在頁面布局中占據(jù)的空間,實際是寬度 200px + 10px + 10px + 5px + 5px + 20px + 20px。同樣的,高度占據(jù)的空間高度也不只是內(nèi)容的高度,而是要把填充,邊框和外邊距的占據(jù)的高度加到一起。 這是一個標(biāo)準(zhǔn)盒子在頁面中占據(jù)空間的計算方式。 替代盒子模型替代盒子模型則希望對于盒在網(wǎng)頁中占據(jù)的空間計算方式不要那么復(fù)雜,直接使用 width 和 height 就能做到。 想要達(dá)成這樣的呈現(xiàn),需要做的事情如下:
在 CSS 中設(shè)置 box-sizing 的值為 border-box,這樣同樣的代碼,呈現(xiàn)的效果就和前面標(biāo)準(zhǔn)盒子不同。 整個盒子占據(jù)的寬度和高度就和內(nèi)部的寬度和高度一樣。 使用瀏覽器的開發(fā)者工具查看盒子模型在 Chrome 瀏覽器里按住 F12,打開開發(fā)者工具。 然后選擇到前面實現(xiàn)的盒子,可以看到如下: 上面是標(biāo)準(zhǔn)盒子在瀏覽器里看到盒子模型,下面是替代盒子模型,可以看到標(biāo)注出來的數(shù)字方便我們清楚地知道它真實的寬度和高度。 總結(jié)
該文章在 2024/10/19 12:42:48 編輯過 |
關(guān)鍵字查詢
相關(guān)文章
正在查詢... |