如果我有以下属性:
html {
text-decoration: none !important;
}
但我想让一个文本装饰,比如“line-through”仍然处于活动状态......
是否有可能做到这一点?如何?
编辑:我不知道这适用于什么 html - 它是通过浏览器插件动态的...
谢谢!
您可以在特定元素/元素上指定此属性,例如
.decorated {
text-decoration: line-through;
}
这样, 的text-decoration
值none
就不会被继承。
编辑:
http://jsfiddle.net/mGGnc/演示了这一点。当然,如果将decorated
类添加到HTML
元素中,这将永远不会起作用,因为在这种情况下将没有属性值继承。CSS2 规范解释了这一点。
如果您将为您的元素单独创建一个类,那么它就不会inherited
从您的reset css
您可以像这样轻松实现您的期望:-
html {
text-decoration: none;
}
.anchor a {
text-decoration:line-through;
color:red;
}
规则(不是属性)html { text-decoration: none !important; }
没有影响,除非在另一个样式表在根元素(html
元素)上设置属性的相当假设的情况下。与流行的误解相反,text-decoration
元素不是继承的。但是,当设置为 以外的值时none
,其效果在某种意义上部分类似于继承。
在对答案的评论中,您写道:“这是一个文本装饰重置 css,它删除了所有装饰——除了我想保留的一两个装饰——比如直通”。像往常一样,一般重置 CSS 样式表往往会导致问题而不是解决问题。要覆盖text-decoration
所有元素的设置,您需要使用通用选择器*
(或所有已知和未知元素的列表)。但是由于属性的定义方式,您不能使其覆盖使用某些值而不覆盖其他值的设置。它的值是或者是none
一个以空格分隔的关键字列表,每个关键字都指定一个“装饰”。因此,如果不将属性设置为特定值,就无法仅否定其中一个关键字。