2

如果我有以下属性:

html {
    text-decoration: none !important;
}

但我想让一个文本装饰,比如“line-through”仍然处于活动状态......

是否有可能做到这一点?如何?

编辑:我不知道这适用于什么 html - 它是通过浏览器插件动态的...

谢谢!

4

3 回答 3

2

您可以在特定元素/元素上指定此属性,例如

.decorated {
    text-decoration: line-through;
}

这样, 的text-decorationnone就不会被继承。

编辑

http://jsfiddle.net/mGGnc/演示了这一点。当然,如果将decorated类添加到HTML元素中,这将永远不会起作用,因为在这种情况下将没有属性值继承。CSS2 规范解释了这一点。

于 2012-11-26T06:56:30.603 回答
1

如果您将为您的元素单独创建一个类,那么它就不会inherited从您的reset css

您可以像这样轻松实现您的期望:-

html {
    text-decoration: none;
}

.anchor a {
text-decoration:line-through;
color:red;
}

演示

于 2012-11-26T07:02:36.473 回答
0

规则(不是属性)html { text-decoration: none !important; }没有影响,除非在另一个样式表在根元素(html元素)上设置属性的相当假设的情况下。与流行的误解相反,text-decoration元素不是继承的。但是,当设置为 以外的值时none,其效果在某种意义上部分类似于继承。

在对答案的评论中,您写道:“这是一个文本装饰重置 css,它删除了所有装饰——除了我想保留的一两个装饰——比如直通”。像往常一样,一般重置 CSS 样式表往往会导致问题而不是解决问题。要覆盖text-decoration所有元素的设置,您需要使用通用选择器*(或所有已知和未知元素的列表)。但是由于属性的定义方式,您不能使其覆盖使用某些值而不覆盖其他值的设置。它的值是或者是none一个以空格分隔的关键字列表,每个关键字都指定一个“装饰”。因此,如果不将属性设置为特定值,就无法仅否定其中一个关键字。

于 2012-11-26T07:58:31.117 回答