HTML-CSS:是否真的有必要为HTML设计中的样式属性使用“inherit”值?

时间:2009-12-21 05:43:42

标签: html css

我的问题是直截了当的:为什么(几乎)HTML-CSS中的所有属性都有“继承”值...即使所有浏览器都支持所有属性的继承(根据我的观察,是的,所有)属性。 。

当我向谷歌询问它时......我可以提出一个声明

  

“即使某些特征   在CSS中自动继承   可能存在你的情况   希望 增加重量   继承财产 。指定一个值   对于任何CSS属性的继承   应用于元素将导致   获得父母计算的元素   有关财产的价值。通过   在作者样式表中指定   一个属性应该继承它   值,你可以增加它的重量。“

现在这更令人困惑了......这是什么“增加了重量”

就像是......试图保持安全......(以便 不信任浏览器内置的继承功能 )或者拥有更易理解的代码?我没有澄清..

也有人提到

  

“Internet Explorer 7及更早版本   版本不支持该值   继承除了以外的任何属性   方向和能见度。“

如果它是真的..那么它驱动使用“继承”值但更弱的原因(??)..

2 个答案:

答案 0 :(得分:3)

请参阅W3C's specification了解“继承”值。

摘录:

  

'inherit'值可用于   加强遗传价值,以及它   也可用于那些属性   通常不会继承。

对我来说,这是一个更好的措辞,而不是“增加继承财产的重量”。

至于IE7继承问题,请在IE7 CSS inherit problem

上查看此SO帖子

<强>更新
使用K Prime的示例代码,这是我在IE7和IE8 / FF3.5上做的测试

HTML:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html>
<head>
<style type="text/css">
p { color: #666; }
p a { color: blue; text-decoration: underline; }
p a.inactive { color: inherit; text-decoration: none; }
</style>
</head>
<body>
<a href="#">should be default</a>
<p>
<a href="#" class="inactive">should be grey</a>
<a href="#">should be blue</a>
</p>
</body>
</html>

IE7输出:
IE7

IE8 / FF3.5输出:
IE8/FF3.5

很好,IE7未能通过'继承'测试。

答案 1 :(得分:2)

这用于覆盖以前设置的自定义样式,或撤消自定义。澄清:

p { color: #666; }
p a { color: blue; text-decoration: underline; }

p a.inactive { color: inherit; text-decoration: none; }

段落中的所有链接(a)都是蓝色的,但这会将inactive的链接设置为从父级(p)继承,这会使它们变为灰色情况下。