我有一个div
带有这个css规范的:
width:200px;
padding:5px
border:1px solid
另一个div
是这个css的孩子:
width:100%
border:1px solid
这些 div 在 FF 和 IE 中呈现如下:
但似乎右边的填充比左边的少!谁能告诉我为什么会导致这种行为?
谢谢
发生这种情况是因为内部的边界div
不是width
自身定义的一部分,因此您的内部 div 实际上100% + 2px
很宽。
您应该box-sizing: border-box;
为内部 div 指定,因此它的宽度将包括边框
有关此属性的更多信息(和浏览器支持),请参阅MDN 文档。
将其推向右侧的边界。设置box-sizing: border-box
为内部 div。
-webkit-box-sizing: border-box;
-moz-box-sizing: border-box;
box-sizing: border-box;
您应该再次检查盒子模型。
您有一个宽度为 100% 的 div 并为其添加了 1px 的边框,因此 div 变为 100% + 2px 宽度,并且像您看到的那样被推到右侧。
您应该删除“宽度:100%”并仅添加边框。(由于 div 是一个块元素,它将占据整个宽度)
您甚至不需要添加 box-sizing,因为 IE7 不支持它。(如果你想要 IE7 支持)
你的父元素上的溢出是什么?除非我弄错了您将宽度设置为 100% 并带有边框,否则宽度为 200px 的 div 内为 200px,因此边框不会显示。
我的快速解决方案(当然有更好的方法)是使右侧的填充比整体填充多 2px 或左侧少 2px。