当前位置: 首页 > Web前端 > HTML

今天做一些盒子尺寸测量吗?

时间:2023-04-03 01:08:08 HTML

说到box-sizing,首先要知道什么是CSS盒模型!盒子模型有两种:IE的border-box和w3c的content-box。看了图你可能已经明白了,但是还得继续说,简单来说:标准的w3c盒模型的范围包括margin,border,padding,content,content部分不包括其他部分,并且border-box是W3C的标准框模型,包括content、padding、border:/*outerboxsizeCalculate(elementspacesize)*/Elementspaceheight=contentheight+padding+border+marginElementspacewidth=contentwidth+padding+border+margin/*内框尺寸计算(元素尺寸)*/ElementHeight=contentheight+padding+border(Heightiscontentheight)ElementWidth=contentwidth+padding+border(Widthiscontentwidth)IE)TraditionalBoxModel(IE6以下,不包括IE6版本或“IE5.5+下的QuirksMode”):/*外框尺寸计算(元素空间尺寸)*/元素空间高度=内容高度+边距(高度包括元素内容宽度,borderwidth,andpaddingwidth)Elementspacewidth=contentWidth+margin(Width包括元素contentwidth,borderwidth,paddingwidth)/*内框尺寸计算(元素尺寸)*/ElementHeight=contentHeight(Heightcontainselementcontentwidth,borderwidth,paddingwidth)ElementWidth=contentWidth(WidthcontainselementContentwidth,borderwidth,paddingwidth)基本上你能理解清楚了吧?想想你有没有遇到过这样的情况,多列布局因为paddingborder在重新布局的时候被打乱了,明明是我想要每行四个元素,结果第四个被挤掉了。例如,在三列布局方面:

div{height:700px;float:left;}div.left{width:25%;background:red;}div.cent{width:50%;box-sizing:border-box;/*现在整个元素,包括padding,占页面总宽度的50%,所有元素的总宽度elementsis100%*/background:yellow;padding:020px;/*添加这个会导致盒子的内容溢出但是盒子的大小调整得很好*/}div.right{width:25%;background:blue;}或者ul-li结构,每行显示四个元素等等,巧妙的使用可以让代码更精简美观最后浏览器兼容性:ie9+,火狐加前缀-moz-,低版本的ios和android加-webkit-