【引文】
box-sizing属性是CSS3中引入的,有人解释为它可以指定用width属性与height属性分别指定的宽度值与高度值是否包含元素内部的补白区域,以及边框的宽度与高度
【通俗理解】
它是一种容器高宽的计算方法,通过指定容器的盒子模型类型,达到不同的展示效果
【解析】
先来理解下box-sizing属性border-box,content-box,也就是常说的正常盒模型与异常盒模型
(1)正常盒模型
正常盒模型,是指块元素box-sizing属性为content-box的盒模型。一般在现代浏览器中使用的都是正常盒模型content-box,它也是标准 w3c 盒子模型
正常盒模型是指:盒模型的大小包括content,padding,border,并且先做content
正常盒模型的大小会以内容优先自动扩展,内部子元素超过父元素给定的大小,会将父元素撑大
(2)怪异盒模型
怪异盒模型,是指块元素box-sizing属性为border-box的盒模型。一般在IE浏览器中默认为这种怪异盒模型,但是由于其自身的特殊性,手机页面中也有使用怪异盒模型
怪异盒模型是先做盒。然后添加border,padding,最后做content。即保证盒模型优先,先做盒再放内容,不管内容是否放得下,一般手机上用的更多
更通俗的说,怪异盒模型中,父元素的盒模型确定,子元素是无法撑开父元素的盒模型,只能在盒模型剩余空间展示
【选择】
那应该选择哪中盒子模型呢?
一般是“标准 w3c 盒子模型”
怎么样才算是选择了“标准 w3c 盒子模型”呢?
很简单,就是在网页的顶部加上 doctype 声明。假如不加 doctype 声明,那么各个浏览器会根据自己的行为去理解网页
即 ie 浏览器会采用 ie 盒子模型去解释你的盒子,而 ff 会采用标准 w3c 盒子模型解释你的盒子。所以网页在不同的浏览器中就显示的不一样了。
反之,假如加上了 doctype 声明,那么所有浏览器都会采用标准 w3c 盒子模型去解释你的盒子,网页就能在各个浏览器中显示一致了
【案例解析】
例如:当一个容器宽度定义为 width:100%; 之后,如果再增加 padding 或者 border 则会溢出父容器,是向外扩张的
如果使用该样式,指定为 box-sizing: border-box; 则 padding 和 border 就不会再溢出,而是向内收缩的,这个效果感觉非常实用
特别是 input 和 textarea 等 现在设置 100% 再直接增加内边距和边框也不用再进行复杂的计算和适配了
.
相关推荐
CSS3中的box-sizing(content-box与border-box) CSS3中的box-sizing 属性允许以特定的方式来指定盒模型,有两种方式: content-box:标准盒模型,又叫做 W3C盒模型,一般在现代浏览器中使用的都是这个盒模型 border...
.url`和`从box-sizing-border-box属性入手,来了解盒模型 -用box-size border-box改变盒模型的结构.url`这两个链接则涉及到了与Box Sizing相关的其他CSS属性,如`text-overflow`,`white-space`和`overflow`,它们...
box-sizing属性包括content-box(default),border-box,padding-box。 1、content-box,border和padding不计算入width之内 2、padding-box,padding计算入width内 3、border-box,border和padding计算入...
语法box-sizing: content-box|border-box|inherit; content-box :w3c标准(默认) border-box :IE传统标准 content-box: .test1{ box-sizing:content-box; width:200px; padding:10px; borde
有时我们会给页面的元素(比如div)设置个固定的高度或宽度。但如果给这个div又设置了内边距或者边框的话,那么这个div就会被撑大。... box-sizing: content-box|border-box|inherit; 值 描述 conte
在这个例子中,`.box_sizing`的子元素`.in`应用了`border-box`,因此元素的宽度100%包含了边框和内边距,不会导致父元素`.box_sizing`的溢出。在不同的浏览器中,由于历史兼容性问题,可能需要使用各种前缀 `-webkit...
总结起来,`box-sizing`属性提供了对元素尺寸计算方式的控制,`border-box`模式允许开发者更直观地设定元素尺寸,而`content-box`则遵循传统的CSS布局规则。了解并灵活运用`box-sizing`,可以帮助优化布局,提高代码...
文件名"tachyons-box-sizing-master"可能表示这是Tachyons-box-sizing项目的主分支或完整版本。通常,"master"分支代表项目的主线开发,包含了最新的稳定代码。下载或克隆这个文件后,开发者可以进一步研究源码,...
box-sizing用于改变CSS盒子模型,从而... padding-box 根据MDN的说法,目前还是一个实验性的属性, width 和 height 包括内容区和内边距,不包括边框和外边据; border-box 包括内边距与边框,不包括外边距。这是I
18_盒子模型-box-sizing
要解决这个问题,我们需要理解`content-box`和`border-box`两种box-sizing模式的区别。`content-box`是CSS2的标准盒模型,其中元素的总尺寸由内容区域的宽度和高度加上边框和内边距组成。而在`border-box`模式下,...
比如,当你需要一个固定宽度的输入框,包括内填充和边框,设置`box-sizing: border-box;`后,你可以直接为输入框设定包括边框在内的总宽度,而无需为内填充和边框单独计算。 在使用像Bootstrap这样的前端框架时,...
背景先声明一下运用的场景,假如项目布局使用的是自适应的布局方式,div给出的宽度是百分比的形式,即占窗口宽度的100%,但边框border和内边距padding
在这个例子中,`.con` 使用了默认的 `content-box`,所以它的实际宽度会是 122px(100px的内容宽度 + 2px的左右边框 + 20px的左右内边距),而`.con1` 设置了 `box-sizing: border-box;`,使得它的宽度严格等于100px...
然而,当box-sizing设置为border-box时,width和height属性则会将内容区域、内边距和边框计算在内。这使得布局更加直观且易于控制。 接下来,我们看如何利用box-sizing属性来仿制框架结构。在给定的内容中,作者...