您好,登錄后才能下訂單哦!
這篇文章主要介紹CSS3屬性box-sizing怎么用,文中介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們一定要看完!
box-sizing用于改變CSS盒子模型,從而改變元素寬高的計算方式。
box-sizing取值如下:
box-sizing: content-box | padding-box | border-box
默認值是 content-box ,對應CSS2.1規范中標準的盒子模型計算方式,即 width 和 height 是內容區的寬與高, 不包括邊框,內邊距,外邊距;
padding-box 根據MDN的說法,目前還是一個實驗性的屬性, width 和 height 包括內容區和內邊距,不包括邊框和外邊據;
border-box 包括內邊距與邊框,不包括外邊距。這是IE 怪異模式(Quirks mode)使用的 盒模型 。
例子(摘自MDN)
/* support Firefox, WebKit, Opera and IE8+ */
.example {
-moz-box-sizing: border-box;
box-sizing: border-box;
}
對JS的影響
根據MDN的敘述:
由window.getComputedStyle 獲取height時不會考慮box-sizing, 至少 Firefox 18 (bug 520992) 與 Internet Explorer 9 是這樣, 不過Chrome 24 不是(其它瀏覽器未測試). 注意 IE9 currentStyle 不能返回正確的height值。
關于Firefox 18及IE9之后的版本,我還沒有測試。
關于jQuery中 .width() 和 .height() 的返回值
jQuery 1.8 版本之后增加了對 box-sizing 的支持,但這還與瀏覽器是否支持 box-sizing 有關,簡而言之,1.8版本之后, .width() 和 .height() 返回的永遠都是內容區的寬和高,見如下代碼:
<!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>
各瀏覽器打印結果如下
IE6/7 : 500
IE8/9/10: 480
Safari5/6: 480
Chrome21/Firefox14: 480
IE6/7不支持box-sizing,內容區的寬度是500,所以輸出的值也是500,而其他支持該屬性的瀏覽器,內容區寬度減去了 padding 和 border 的值,變成了480.
另:jquery中的 .outerWidth() 和 .outerHeight() 方法不受影響。
以上是“CSS3屬性box-sizing怎么用”這篇文章的所有內容,感謝各位的閱讀!希望分享的內容對大家有幫助,更多相關知識,歡迎關注億速云行業資訊頻道!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。