您好,登錄后才能下訂單哦!
這篇文章主要介紹CSS3屬性box-sizing怎么用,文中介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們一定要看完!
box-sizing用于改變CSS盒子模型,從而改變?cè)貙捀叩挠?jì)算方式。
box-sizing取值如下:
box-sizing: content-box | padding-box | border-box
默認(rèn)值是 content-box ,對(duì)應(yīng)CSS2.1規(guī)范中標(biāo)準(zhǔn)的盒子模型計(jì)算方式,即 width 和 height 是內(nèi)容區(qū)的寬與高, 不包括邊框,內(nèi)邊距,外邊距;
padding-box 根據(jù)MDN的說(shuō)法,目前還是一個(gè)實(shí)驗(yàn)性的屬性, width 和 height 包括內(nèi)容區(qū)和內(nèi)邊距,不包括邊框和外邊據(jù);
border-box 包括內(nèi)邊距與邊框,不包括外邊距。這是IE 怪異模式(Quirks mode)使用的 盒模型 。
例子(摘自MDN)
/* support Firefox, WebKit, Opera and IE8+ */
.example {
-moz-box-sizing: border-box;
box-sizing: border-box;
}
對(duì)JS的影響
根據(jù)MDN的敘述:
由window.getComputedStyle 獲取height時(shí)不會(huì)考慮box-sizing, 至少 Firefox 18 (bug 520992) 與 Internet Explorer 9 是這樣, 不過(guò)Chrome 24 不是(其它瀏覽器未測(cè)試). 注意 IE9 currentStyle 不能返回正確的height值。
關(guān)于Firefox 18及IE9之后的版本,我還沒(méi)有測(cè)試。
關(guān)于jQuery中 .width() 和 .height() 的返回值
jQuery 1.8 版本之后增加了對(duì) box-sizing 的支持,但這還與瀏覽器是否支持 box-sizing 有關(guān),簡(jiǎn)而言之,1.8版本之后, .width() 和 .height() 返回的永遠(yuǎn)都是內(nèi)容區(qū)的寬和高,見(jiàn)如下代碼:
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8"/>
<style type="text/css">
#container {
-moz-box-sizing: border-box;
box-sizing: border-box;
width: 500px;
padding: 5px;
border: 5px solid gold;
}
</style>
<script src="js/jquery-1.8.0.js"></script>
</head>
<body>
<div id="container"></div>
<script>
var $el = $('#container')
var w = $el.width();
console.log(w)
</script>
</body>
</html>
各瀏覽器打印結(jié)果如下
IE6/7 : 500
IE8/9/10: 480
Safari5/6: 480
Chrome21/Firefox14: 480
IE6/7不支持box-sizing,內(nèi)容區(qū)的寬度是500,所以輸出的值也是500,而其他支持該屬性的瀏覽器,內(nèi)容區(qū)寬度減去了 padding 和 border 的值,變成了480.
另:jquery中的 .outerWidth() 和 .outerHeight() 方法不受影響。
以上是“CSS3屬性box-sizing怎么用”這篇文章的所有內(nèi)容,感謝各位的閱讀!希望分享的內(nèi)容對(duì)大家有幫助,更多相關(guān)知識(shí),歡迎關(guān)注億速云行業(yè)資訊頻道!
免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。