我正在处理一个遗留项目,该项目具有CSS重置,*{ margin:0; padding:0 }
适用于所有内容。现在,我的新代码不需要它,因为它依赖于Normalize.css。这不是一个问题,但在某些地方我需要使用这两种风格。
如何取消设置我的CSS?我能够*{margin:auto}
做得很好。填充也是如此。是否有相同的方法来重置填充。你是怎么解决这个问题的?
答案 0 :(得分:21)
auto
不是padding
属性的有效值,您唯一能做的就是从padding: 0;
声明中取出*
,否则只需指定{{1}各个属性块。
如果您从padding
移除padding: 0;
,则浏览器会将默认样式应用于您的元素,这会为您提供意外的跨浏览器定位偏移几个像素,因此最好指定* {}
使用padding: 0;
并且如果要覆盖填充,只需使用其他规则,如
*
答案 1 :(得分:3)
您应该将*选择器范围限定在需要重置的特定区域。 .legacy * { }
等等。
答案 2 :(得分:2)
最简单的支持解决方案是使用保证金
.element {
display: block;
margin: 0px auto;
}
或者在应用了此边距的元素周围使用第二个容器。如果padding: 0px auto
确实存在,这将有一定的影响。
<强> CSS 强>
.element_wrapper {
display: block;
margin: 0px auto;
}
.element {
background: blue;
}
<强> HTML 强>
<div class="element_wrapper">
<div class="element">
Hello world
</div>
</div>
答案 3 :(得分:0)
您可以将initial
的填充(默认为其他值)重置为默认值。
p {
padding: initial;
}
答案 4 :(得分:0)
如果您的目标是重置所有内容,那么@Björn的答案应该是您的目标,但应采用:
* {
padding: initial;
}
如果此代码是在您的原始reset之后加载的。css的权重应相同,并且将依赖于每个浏览器的默认填充作为初始值。