CSS3屬性box-sizing使用指南

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的說法,目前還是一個(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 是這樣, 不過Chrome 24 不是(其它瀏覽器未測(cè)試). 注意 IE9 currentStyle 不能返回正確的height值。
關(guān)于Firefox 18及IE9之后的版本,我還沒有測(cè)試。
關(guān)于jQuery中 .width() 和 .height() 的返回值
jQuery 1.8 版本之后增加了對(duì) box-sizing 的支持,但這還與瀏覽器是否支持 box-sizing 有關(guān),簡而言之,1.8版本之后, .width() 和 .height() 返回的永遠(yuǎn)都是內(nèi)容區(qū)的寬和高,見如下代碼:
<!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() 方法不受影響。
相關(guān)文章
- 這篇文章主要介紹了css中background-clip屬性的作用,background-clip屬性的通俗作用就是指定元素背景所在的區(qū)域,對(duì)css中background-clip屬性的相關(guān)知識(shí)感興趣的朋友一起看2018-03-29
CSS3基于背景裁剪(background-clip)實(shí)現(xiàn)的文本標(biāo)題透視特效源碼
這是一款CSS3基于背景裁剪(background-clip)實(shí)現(xiàn)的文本標(biāo)題透視特效源碼。畫面上的外星球與飛船背景中央呈現(xiàn)出帶有背景剪切透視的文本視覺效果。同時(shí)可響應(yīng)鼠標(biāo)的移動(dòng)呈2017-11-17CSS3中background-clip和background-origin的區(qū)別示例介紹
本文為大家介紹下CSS3中background-clip和background-origin的區(qū)別,感興趣的朋友可以參考下2014-03-10深入淺出CSS3 background-clip,background-origin和border-image教程
最近在準(zhǔn)備一個(gè)下學(xué)期參加比賽的概念網(wǎng)站,希望能用到CSS3的新特性,比如background的background-clip或background-origin或border-image。但僅僅是依靠w3schools上的文檔2011-01-27CSS3教程:background-clip和background-origin-CSS教程-網(wǎng)頁制作-網(wǎng)頁
原文:http://www.planabc.net/2008/04/14/background-clip_background-origin/ background-clip 和 background-origin 是 CSS3 中新加的 background module 屬性,用來2008-10-17詳解CSS3中的box-sizing(content-box與border-box)
這篇文章主要介紹了CSS3中的box-sizing(content-box與border-box)的相關(guān)資料,需要的朋友可以參考下2019-04-19- 這篇文章主要介紹了淺談CSS3 box-sizing 屬性 有趣的盒模型 ,需要的朋友可以參考下2019-04-02
- 一說到CSS的盒模型(Box model)我想很多人都會(huì)比較煩,特別是對(duì)于新手,然而這個(gè)Box model又是我們CSS運(yùn)用中比較重要的一個(gè)屬性,box-sizing 屬性允許您以特定的方式定義匹2015-04-09
- CSS3 box-sizing屬性,在很多新手朋友來看是比較陌生的,接下來介紹CSS3 box-sizing使用及注意部分,感興趣的朋友可以了解下2013-01-08
解決CSS 中box-sizing與background-clip解決背景顯示范圍的問題
這篇文章主要介紹了CSS box-sizing與background-clip解決背景顯示范圍的問題,主要用這篇文章給大家做個(gè)記錄,避免大家遇到此類問題,感興趣的朋友跟隨小編一起看看吧2019-05-13