如果 CSS 中的属性没有默认值,是否可以覆盖该属性?
例如,假设您的主样式表定义了特定元素的边框:
#element {
border: 1px solid #000;
}
如果您想禁用辅助样式表的边框,您可以这样做:
#element {
border: none;
}
假设辅助样式表是在主样式表之后加载的,border: none
规则将优先并删除边界。
但是,如果您尝试覆盖没有默认值或空值的属性怎么办?
#element {
position: absolute;
left: 0;
}
现在,在您的辅助样式表中,您想要执行以下操作:
#element {
right: 0;
top: 0;
}
而你不想要任何价值left
。没有这样的事情left: none;
,那么...你如何“取消声明”left
在主样式表中分配的属性?
如果我正确地阅读了您的问题,您是否想在一个样式表中“删除”另一个样式表中的声明,以便该属性将计算为默认值?
目前无法将其重置为浏览器用作给定元素的默认值的任何值。你能得到的最接近的是CSS3 initial keyword http://www.w3.org/TR/css3-cascade/#initial0,它根据规范而不是根据浏览器的定义方式将属性重置为其初始/默认值:
#element {
left: initial;
right: 0;
top: 0;
}
除了 Safari/Chrome 和 Firefox 之外,没有太多浏览器支持它(如-moz-initial
),因此您的下一个最佳选择是查找初始值并将其硬编码。为了left
属性,它是auto
(而且我相信对于所有浏览器中的任何元素来说都是这个值),所以:
#element {
left: auto;
right: 0;
top: 0;
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)