更新時(shí)間:2021年06月09日16時(shí)13分 來(lái)源:傳智教育 瀏覽次數(shù):
/* 傳統(tǒng)計(jì)算方式 */ box-sizing: content-box; /* 新的計(jì)算方式 */ box-sizing: border-box;使用content-box計(jì)算方式的盒子模型,其寬度的計(jì)算公式如下。
盒子的寬度 = CSS中設(shè)置的width + border + padding使用border-box計(jì)算方式的盒子模型,其寬度的計(jì)算公式如下。
盒子的寬度 = CSS中設(shè)置的width當(dāng)采用border-box計(jì)算方式時(shí),CSS中設(shè)置的寬度width已經(jīng)包含了border和padding值,不用擔(dān)心因?yàn)樵O(shè)置了元素的border和padding導(dǎo)致盒子被撐大的問(wèn)題。這種方式的優(yōu)點(diǎn)在于,盒子的大小是固定的,不會(huì)受到邊框和內(nèi)邊距的影響,也不會(huì)影響到頁(yè)面中其他盒子的結(jié)構(gòu)。因此,在移動(dòng)Web開(kāi)發(fā)中,推薦使用border-box這種計(jì)算方式。
為了讓讀者更好地理解,下面通過(guò)例2-4演示content-box和border-box的區(qū)別。
【例2-4】
(1)創(chuàng)建C:\web\chapter02\demo04.html文件,具體代碼如下。
<!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title>box-sizing</title> <style> div { width: 100px; height: 100px; padding: 10px; background-color: #eee; } div:nth-child(1) { border: 10px solid #999; box-sizing: content-box; } div:nth-child(2) { border: 10px solid #666; box-sizing: border-box; } </style> </head> <body> <div>content-box</div> <div>border-box</div> </body> </html>
上述代碼中,第7~12行代碼用于為所有div設(shè)置樣式,第13~16行代碼用于為第1個(gè)div設(shè)置樣式,第17~20行代碼用于為第2個(gè)div設(shè)置樣式。第15行將第1個(gè)div設(shè)置為content-box,第19行將第2個(gè)div設(shè)置為border-box。
(2)在瀏覽器中打開(kāi)demo04.html文件,運(yùn)行結(jié)果如圖1所示。
圖1 對(duì)比content-box和border-box
從圖1可以看出,雖然content-box和border-box在CSS中設(shè)置的寬高都是100px,但因?yàn)閎ox-sizing不同,content-box會(huì)被外邊距和邊框撐大,而border-box不會(huì)被撐大。
Normalize.樣式庫(kù)的特點(diǎn),如何下載和使用Normalize.css?
格式化標(biāo)簽的特點(diǎn),HTML網(wǎng)頁(yè)有哪些典型格式化標(biāo)簽?
2021-05-28為什么要規(guī)范命名網(wǎng)頁(yè)模塊?常見(jiàn)的命名規(guī)則有哪些?
2021-05-24HTML5新增了哪些結(jié)構(gòu)標(biāo)簽?
2021-05-24CSS中overflow屬性是怎樣處理溢出內(nèi)容的?
2021-05-24什么是Ajax?Ajax都有哪些優(yōu)點(diǎn)和缺點(diǎn)?
2021-05-21Spring框架中都用到了哪些設(shè)計(jì)模式?
2021-05-21北京校區(qū)