”盒模型“之如何防止边框和内边距把元素撑开
2017-03-26 11:26
225 查看
在我们讨论宽度的时候,我们应该讲下与它相关的一个重点知识:盒模型。当你设置了元素的宽度,实际展现的元素却能够超出你的设置:因为元素的边框和内边距会撑开元素。看下面的例子,两个相同宽度的元素显示的实际宽度却不一样。
.simple { width: 500px; margin: 20px auto; } .fancy { width: 500px; margin: 20px auto; padding: 50px; border-width: 10px; }<div class="simple">
我小一些...
</div><div class="fancy">我比它大!
</div>以前有一个代代相传的解决方案是数学。CSS开发者需要用比他们实际想要的宽度小一点的宽度,需要减去内边距和边框的宽度。值得庆幸地是你不需要再这么做了...
经过了一代又一代人们意识到数学不好玩,所以他们新增了一个叫做
box-sizing的CSS属性。当你设置一个元素为
box-sizing: border-box;时,此元素的内边距和边框不再会增加它的宽度。这里有一个与前一页相同的例子,唯一的区别是两个元素都设置了
box-sizing: border-box;:
.simple { width: 500px; margin: 20px auto; -webkit-box-sizing: border-box; -moz-box-sizing: border-box; box-sizing: border-box; } .fancy { width: 500px; margin: 20px auto; padding: 50px; border: solid blue 10px; -webkit-box-sizing: border-box; -moz-box-sizing: border-box; box-sizing: border-box; }<div class="simple">
我们现在一样大小了!
</div><div class="fancy">
万岁!
</div>
既然没有比这更好的方法,一些CSS开发者想要页面上所有的元素都有如此表现。所以开发者们把以下CSS代码放在他们页面上:
* { -webkit-box-sizing: border-box; -moz-box-sizing: border-box; box-sizing: border-box; }
这样可以确保所有的元素都会用这种更直观的方式排版。
既然
box-sizing是个很新的属性,目前你还应该像我之前在例子中那样使用
-webkit-和
-moz-前缀。这可以启用特定浏览器实验中的特性。同时记住它是支持IE8+。
转自:http://zh.learnlayout.com/box-model.html
稍有改动
相关文章推荐
- ”盒模型“之如何防止边框和内边距把元素撑开
- ”盒模型“之如何防止边框和内边距把元素撑开
- CSS 框模型——规定了元素框处理元素内容、内边距、边框和外边距的方式
- 如何清除浮动元素对父元素高度的影响 & 如何解决外边距溢出问题
- 盒模型、内外边距和边框
- 理解盒模型——外边距、内边距和边框之间的关系,IE 8以下版本的浏览器中的盒模型有什么不同。
- HTML基础-样式位置、背景、边框、内外边距、盒模型和结构、文本、常见样式
- jasperreport如何为报表元素添加边框
- 子元素使用float后如何撑开父div
- 子div用了float浮动之后,如何撑开父元素,让父元素div自动适应高度
- 如何让包含了浮动得元素被撑开
- CSS样式设置语法全解,样式优先级、值和单位、字体、文本、块级元素,行内元素,替换元素、非替换元素、display、float、position、table、li、光标、边距边框、轮廓、颜色背景
- 防止表格边框撑开的方法
- CSS——【元素内边距padding、元素外边距margin、元素边框border-width、元素大小width/height】与【元素显示大小】的关系
- (转)CSS3全局实现所有元素的内边距和边框不增加
- 子div用了float浮动之后,如何撑开父元素,让父元素div自动适应高度
- 网页中如何防止表格被撑开或div层被撑开
- 子元素用了float浮动之后,如何撑开父元素,让父元素div自动适应高度的问题
- 如何让DIV的高度随子元素自动撑开?
- css 样式设计(一)( 在线150个例子 | 背景 | 文本 | 字体 | 链接 | 列表 | 表格 | 盒模型 | 边框 | 轮廓 | 边距 | 填充 |分组和嵌套 | 尺寸 | 定位 | 浮动 |对齐 )