IE7的CSSinheritance不起作用

我已经为h2标签(颜色,字体大小等)设置了一些样式,但是当我把“A”标签放在里面时,样式变成了链接。 我的html:

<h2> <a class="no-decor" href="http://localhost/xxx/">Link</a> </h2> 

所以,正如你所看到的,我创造了“无装饰”课程。 它应该inheritanceh2的“a”标签样式。

 a.no-decor { color:inherit; font-family:inherit; font-size:inherit; font-weight:inherit; text-decoration:inherit; } 

在Firefox上,每一个都可以,但IE仍然显示标签“a”风格(下划线文字修饰和蓝色)。 我知道,我可以为“h2 a”设置一些样式,但也许有可能强制在IE7上工作CSSinheritance值?

PS在IE6上也不支持。

PPS有一些相同的例子: http : //www.brunildo.org/test/inherit.html

不,IE从来不支持inherit任何财产 – 抱歉。 这已经修复在> = IE8。

虽然您可以使用JavaScript修复程序将属性从h2复制到a ,但可能最简单的方法是将相同的样式规则应用于这两个元素:

 h2, h2 a { font: something; color: black; text-decoration: none; } 

无论如何,您不需要在文本修饰上设置inherit ,因为修饰不会从父项inheritance到子项:下划线效果在父项上,并且通过子项; 孩子不能删除它(模块IE错误)。 孩子上的“文字装饰:无”是正确的,除非你想要两个下划线。

尝试

 a.no-decor{ color:inherit; //color:expression(this.parentNode.currentStyle['color']); text-decoration:none; } 

这将摆脱你的蓝色和下划线。 你可以使用类似的下划线expression式,但最好使用文本装饰:没有,因为这是一个inheritance的文本 – 装饰会给你无论如何,并不需要使用expression式,而不是绝对必要的(你'在使用expression式时会获得性能提升)。

一个bug是一个错误,没有什么可以做的,缺乏解决方法。

在这里有一个inheritance支持的testing。

您也可以尝试使用像ie7-js这样的脚本,“这是一个JavaScript库,使Microsoft Internet Explorer的行为像一个符合标准的浏览器”

Internet Explorer <= 7版本不支持除directionvisibility以外的任何属性的inherit值。