關於盒模型的理解

2022-03-06 12:32:34 字數 3068 閱讀 7508

css中乙個很重要的概念是盒模型,css處理網頁時,它認為每個元素都包含在乙個不可見的盒子裡

由內容區域、內容區域周圍的空間(內邊距,padding)、內邊距的外邊緣(邊框,border)和邊框外面將元素與相鄰元素隔開的不可見區域(外邊距,margin)構成。具體如下圖

瀏覽器中元素的寬度與其width屬性值並不一致(除非沒有內邊距和邊框)。css中的寬度指示的是內邊距裡內容區域的寬度,而在瀏覽器中顯示寬度則是內容寬度、左右內邊距和左右邊框的總和,顯示高度與之類似。

當使用了box-sizing:border-box;則元素的顯示寬度就等於width屬性的值。內容寬度、內邊距和邊框都包含在裡面。如下圖

看起來似乎是css設定的寬度變大了,但其實,更改的並不是css,改變的是瀏覽器對於寬度的計算,我們來看乙個例子:

doctype html

>

<

html

>

<

head

>

<

title

>test

title

>

<

link

rel="stylesheet"

type

="text/css"

href

="css/test.css"

>

head

>

<

body

>

<

div

class

="box"

>

div>

body

>

html

>

.box
效果:

寬度和高度都為180px,即20+20+100+20+20 = 180px,而內容區域一樣是100px,加上box-sizing:border-box之後:

寬度和高度為100px,而內容區域只剩下20px,即100 - 20 - 20 - 20 - 20 = 20px

即當加上box-sizing:border-box之後,瀏覽器對於css中設定的width的計算方式變成了:border-left + padding-left + content + padding-right + border-right的總寬度,對於height的計算變成了:border-top + padding-top + content + padding-bottom + border-bottom的總高度

製作小三角形:

最終效果:

示例:

doctype html

>

<

html

>

<

head

>

<

title

>test

title

>

<

link

rel="stylesheet"

type

="text/css"

href

="css/test.css"

>

head

>

<

body

>

<

div

class

="box"

>

div>

body

>

html

>

.box
解釋:盒模型中,margin,border,padding都可以分成上、下、左、右四個部分,都可以進行分別控制,而當我們把padding和content的大小都設為0,而border給定寬度時,將會出現如上圖所示的圖形。我們也可以試試給定padding和content部分空間時的形態:

.box
效果:

簡單應用:

doctype html

>

<

html

>

<

head

>

<

title

>test

title

>

<

link

rel="stylesheet"

type

="text/css"

href

="css/test.css"

>

head

>

<

body

>

<

div

class

="box"

>

<

ul>

<

li>item 1

li>

<

li>item 2

li>

<

li>item 3

li>

ul>

div>

body

>

html

>

.box.box:afterli
效果:以上只是個人粗淺理解,有啥問題,大家可以提出,一起**!

盒模型理解

參考 盒模型理解 前端的盒模型包括兩種,分別是w3c盒模型和ie盒模型。w3c盒模型包括content padding border margin。其中width content ie盒模型包括content padding border margin。其中width content padding...

理解盒模型

div css有兩種盒模型 標準w3c盒模型 ie盒模型 如何讓瀏覽器能夠按標準盒模型來處理,就是在網頁的頂部加上doctype宣告。如果不加 doctype宣告,那麼各個瀏覽器會根據自己的行為去理解網頁。標準盒模型中width和height指的是內容區域的寬度和高度,增加內邊距 邊框和外邊距不會影...

理解盒模型

div css有兩種盒模型 標準w3c盒模型 ie盒模型 如何讓瀏覽器能夠按標準盒模型來處理,就是在網頁的頂部加上doctype宣告。如果不加 doctype宣告,那麼各個瀏覽器會根據自己的行為去理解網頁。標準盒模型中width和height指的是內容區域的寬度和高度,增加內邊距 邊框和外邊距不會影...