CSS text-decoration-设置为none,但允许一个或多个属性

时间:2012-11-26 06:53:58

标签: html css

如果我有以下属性:

html {
    text-decoration: none !important;
}

但是我想允许一个文字装饰,比如“直通”仍然是活跃的......

有可能这样做吗?怎么样?

编辑:我不知道这个应用的HTML是什么 - 通过浏览器插件是动态的......

谢谢!

3 个答案:

答案 0 :(得分:2)

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

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

这样,text-decoration的{​​{1}}值将不会继承。

修改

http://jsfiddle.net/mGGnc/证明了这一点。当然,如果将none类添加到decorated元素,这将永远不会起作用,因为在这种情况下将不存在属性值继承。 CSS2 spec解释了这一点。

答案 1 :(得分:1)

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

中获取reset css

您可以像这样轻松实现所需: -

html {
    text-decoration: none;
}

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

DEMO

答案 2 :(得分:0)

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

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