border属性对元素实际width的影响总结
2018-01-25 15:36
274 查看
今天遇到一个问题。
![](https://img-blog.csdn.net/20180125120300671?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvdTAxMjE0ODI2Mg==/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/SouthEast)
块A包裹块B,明明在B设置了margin-bottom:12px。为什么A的高还是不变?
然而,在给A设置了border-bottom后。A的高就如期待的一样了,59+12=71px 。
这是为什么。
首先知识点1:box-sizing
默认是content-box,即实际width=设置width+边框+间距。
如果设置为border-box,padding和border被包含在定义的width和height之内。对象的实际宽度就等于设置的width值,即使定义有border和padding也不会改变对象的实际宽度,即 ( Element width = width )
。
好吧吃午饭路上想明白了。是外边距合并问题。
没有border的时候外边距合并,上下的margin都是10,加入border后,双方的margin不再合并。所以出现了刚才的情况。
块A包裹块B,明明在B设置了margin-bottom:12px。为什么A的高还是不变?
然而,在给A设置了border-bottom后。A的高就如期待的一样了,59+12=71px 。
这是为什么。
首先知识点1:box-sizing
默认是content-box,即实际width=设置width+边框+间距。
如果设置为border-box,padding和border被包含在定义的width和height之内。对象的实际宽度就等于设置的width值,即使定义有border和padding也不会改变对象的实际宽度,即 ( Element width = width )
。
好吧吃午饭路上想明白了。是外边距合并问题。
没有border的时候外边距合并,上下的margin都是10,加入border后,双方的margin不再合并。所以出现了刚才的情况。
相关文章推荐
- web前端,html+css常用元素,属性总结
- Span元素的width属性无效果原因及解决方案
- jQuery操作元素的属性与样式方法总结
- 元素float,margin等属性使用总结
- js中常用元素属性scrollLeft,scrollWidth,clientWidth,offsetWidth的解释
- 将两个并列的元素的属性设为inline-block的影响
- 1.width是核心内部元素,margin,padding,border值不属于width 2.absolute 两个绝对定位的元素如果是同一父元素会发生重叠,而不是与float一样会正常排布
- html的学习二--类,块,表格,列表。布局元素和属性总结
- js里使用的各种元素大小尺寸属性总结
- 对table元素相关的标签和属性一点总结
- 区分总结innerHeight与clientHeight、innerWidth与clientWidth、scrollLeft与pageXOffset等属性
- js里使用的各种元素大小尺寸属性总结
- Spring bean元素的属性总结
- 【jQuery】总结:筛选器、控制隐藏、操作元素style属性
- obj.currentStyle.property、window.getComputedStyle(obj,null).property、obj.style.property 获取与元素属性的总结
- Span元素的width属性无效果原因及解决方案
- CSS border-width 属性
- 学习总结--Css中最小宽度min-width和最大宽度max-width属性的使用方法
- css中border-width 属性
- 关于元素的 width属性无效果