如何删除填充属性



我们使用的是第三方支付网关,它的CSS扰乱了我们的代码。它添加了以下属性以将所有列设置为填充0。

[class*=col-] {
padding: 0;
}

我应该如何删除此填充属性?我不想要这种填充属性。

重置

[class*=col-] {
padding: initial;
}

确保样式文件链接在第三方文件之后,如:

<head>
<link rel="stylesheet" href="third party">
<link rel="stylesheet" href="style that have padding initial">
<!--OR-->
<style>
[class*=col-] {
padding: initial;
}
</style>
</head>

当多个声明具有相同的特异性时,在CSS中找到的最后一个声明将应用于元素。---特定性-Mozilla

注意

如果这不起作用,那么在样式化后写!important,就像这个一样

[class*=col-] {
padding: initial !important;
}

正在删除

可以使用JS删除属性:removeProperty()

重新设置

或者只需在任意位置设置填充,最后添加!important
但是,

在样式声明中使用important规则时,此声明将覆盖任何其他声明。虽然从技术上讲,!important与特异性无关,但它与特异性直接交互。然而,使用!important是一种糟糕的做法,应该避免,因为它会破坏样式表中的自然级联,从而使调试更加困难。当具有!important规则的两个冲突声明应用于同一元素时,将应用具有更大特定性的声明。

所以不要只在编辑外部插件/库时使用它,比如您的案例:

仅使用!重要的页面特定CSS覆盖外来CSS(来自外部库,如Bootstrap或normalize.CSS(。


资源
特定性-Mozilla

您不能真正删除属性。您只能编写一个选择器来给它一个不同的值。

将其设置为initial应该会使元素返回其默认值。

它不会导致它恢复到您应用过的早期样式。如果你想这样做,那么你应该通过你添加它的选择器的特定性来覆盖原始分配。

变量

你可以做:

.my-class[class] /* for specificity */ {
padding: var(--padding);
}

然后为.my-class类的每个标签制作一个您选择的--padding

或者显而易见的

.my-element[class] {
padding: [padding]
}

也许您正在寻找CSSremoveProperty()

CSSTyleDeclaration.removeProperty((方法接口从CSS样式声明对象中删除属性。

点击此处查看更多

最新更新