我正在处理一个遗留项目,其中应用了 *{ margin:0; padding:0 }
的 CSS Reset。现在,我的新代码不需要这个 Reset,因为它依赖于 Normalize.css。这一直不是什么大问题,但有些地方我需要同时使用这两种样式。
如何取消 CSS Reset?我已经能够使用 *{margin:auto}
,这很好用。但同样的方法并不能适用于 padding。是否有一种相应的方法来重置 padding?你是如何解决此类问题的?
我正在处理一个遗留项目,其中应用了 *{ margin:0; padding:0 }
的 CSS Reset。现在,我的新代码不需要这个 Reset,因为它依赖于 Normalize.css。这一直不是什么大问题,但有些地方我需要同时使用这两种样式。
如何取消 CSS Reset?我已经能够使用 *{margin:auto}
,这很好用。但同样的方法并不能适用于 padding。是否有一种相应的方法来重置 padding?你是如何解决此类问题的?
auto
不是padding
属性的有效值,唯一可以做的就是从*
声明中去掉padding: 0;
,否则只需将padding
分配给相应的属性块即可。* {}
中移除padding: 0;
,那么浏览器将对您的元素应用默认样式,这将导致意外的跨浏览器定位偏移几个像素,因此最好使用*
指定padding: 0;
,然后如果您想覆盖填充,请使用另一条规则。.container p {
padding: 5px;
}
padding:0
,因为这将对之前编写的遗留代码产生影响。我认为唯一的选择是在需要时添加填充,因为它不能像边距那样重置。 - Vaibhav K.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>
.legacy * { }
等。body
上设置 margin: 0; padding: 0
,这样嵌套的元素就可以继承它。但是如果你对 body
设置了 margin: 0; padding: 0
,上述方法就不起作用了。 - Mr. Alien您可以使用initial
将内边距(以及我想是其他所有属性)重置为默认值。
p {
padding: initial;
}
如果你的目标是重置所有内容,那么@Björn的答案应该是你的目标,但应用为:
* {
padding: initial;
}
如果此文件在你的原始reset.css之后加载,它应该具有相同的权重,并依赖于每个浏览器的默认填充作为初始值。