我们使用的是第三方支付网关,它的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样式声明对象中删除属性。
点击此处查看更多