如何填充:在CSS中自动工作?

时间:2013-08-31 07:11:50

标签: css css-reset

我正在处理一个遗留项目,该项目具有CSS重置,*{ margin:0; padding:0 }适用于所有内容。现在,我的新代码不需要它,因为它依赖于Normalize.css。这不是一个问题,但在某些地方我需要使用这两种风格。

如何取消设置我的CSS?我能够*{margin:auto}做得很好。填充也是如此。是否有相同的方法来重置填充。你是怎么解决这个问题的?

5 个答案:

答案 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的权重应相同,并且将依赖于每个浏览器的默认填充作为初始值。