CSS-删除父项的负边距';填充物

CSS-删除父项的负边距';填充物,css,padding,margin,margins,Css,Padding,Margin,Margins,使用负边距删除包装器元素的填充是否是一种好的做法 例如,下面哪个代码段更适合使用 <div style="padding: 5px;"> Shortened width string <div style="margin: 0 -5px;">Full width string</div> Shortened width string </div> 缩短宽度字符串 全宽字符串 缩短宽度字符串 或 缩短宽度字符串 全宽字符串 缩短宽度字符

使用负边距删除包装器元素的填充是否是一种好的做法

例如,下面哪个代码段更适合使用

<div style="padding: 5px;">
 Shortened width string
 <div style="margin: 0 -5px;">Full width string</div>
 Shortened width string
</div>

缩短宽度字符串
全宽字符串
缩短宽度字符串


缩短宽度字符串
全宽字符串
缩短宽度字符串

嗯,这几乎是一个黑客。只要能克制使用,我会说没关系。关键是要确保它易于阅读和理解。如果需要,可以添加注释。

为什么不直接声明
填充:5px 0这样就没有水平填充了?虽然我认为使用负利润是很好的,但这正是它们的用武之地,但如果你能在第一个位置避免它们,那么就这样做。

第二个更优越。应该避免负边距,因为它们会给IE带来问题。

负边距隐藏div…。这是一个诀窍 使用缩放:1,位置:相对

下面是一个例子

问题:

.container{
padding: 20px;
}
.toolbar{
margin-top: -10px ;
}
在工具栏div的IE红色区域中隐藏自身。甚至我们也在使用缩放:1。为了解决这个问题,我们需要添加position:relative

解决方案:

.container{
padding: 20px;
}
.toolbar{
margin-top: -10px ;
}
因此,您的css类将成为

.container{
padding: 20px;
}
.toolbar{
margin-top: -10px ;
zoom: 1;
position: relative;
}

但在这个例子中,我需要为所谓的“缩短宽度字符串”添加水平填充。为什么不将它包装在另一个元素中并为其添加填充呢?顺便说一句,我仍然认为负边距非常适合此操作。添加位置:relative;帮助IE正确显示负页边距。之后,您只需修复由位置引起的问题:相对;自身:D(触发hasLayout帮助)