所以我已经阅读了之前关于这个主题的讨论,我理解文本装饰是传播而不是继承的,但是规范没有说为什么。我正试图更好地理解为什么会这样,以及为什么定位很重要。这种行为的好处是什么?我很惊讶,因为这不是直觉。在CSS中还有其他类似的例子需要我注意吗?
考虑这个早于CSS的标记。
<strike>The <a href="http://example.com/">example</a> is here.</strike>
<strike>
默认为text-decoration:line-through
,<a href="...">
默认为text-decoration:underline
。在css出现之前,"example"这个词会同时加下划线和划掉,所以CSS需要能够实现相同的效果。为了做到这一点,规范编写者选择让text-decoration
累积而不是继承。
另一种方法是给每个text-decoration
值赋予自己的属性。1997年5月,CSS之父ha
没有也没有简单的方法来关闭闪烁抛出在文本装饰属性上设置的其他值。这为简洁而牺牲——其他的选择是为'text-decoration'的所有值设置单独的二进制属性。
当时的设想是,text-decoration
将被扩展到超过它最终拥有的四个装饰-几个已经从草案规范中删除了。
所以你知道了,CSS的设计者当时并不想要大量的属性。
很难证明这样的否定,但我不知道有任何其他属性以这种方式传播。