IE7CSS继承不起作用

IE7CSS继承不起作用,css,internet-explorer,internet-explorer-7,Css,Internet Explorer,Internet Explorer 7,我已经为h2标签设置了一些样式(颜色、字体大小等),但当我将“A”标签放入其中时,样式就变成了链接。我的html: <h2> <a class="no-decor" href="http://localhost/xxx/">Link</a> </h2> 在Firefox上,一切正常,但IE仍然显示标记“a”样式(下划线文本装饰和蓝色)。我知道,我可以为“h2 a”设置一些样式,但也许有可能强制工作CSS在IE7上继承值 IE6上的p.S.也不

我已经为h2标签设置了一些样式(颜色、字体大小等),但当我将“A”标签放入其中时,样式就变成了链接。我的html:

<h2>
  <a class="no-decor" href="http://localhost/xxx/">Link</a>
</h2>
在Firefox上,一切正常,但IE仍然显示标记“a”样式(下划线文本装饰和蓝色)。我知道,我可以为“h2 a”设置一些样式,但也许有可能强制工作CSS在IE7上继承值

IE6上的p.S.也不支持


p.p.S.也有类似的例子:

一个bug就是一个bug,除了变通办法,你什么都做不了

有一个关于继承支持的测试


您还可以尝试使用脚本,如“这是一个JavaScript库,使Microsoft Internet Explorer的行为类似于符合标准的浏览器”

否,IE从未支持任何属性的继承-抱歉。这已在>=IE8中修复

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

h2,h2a{
字体:某物;
颜色:黑色;
文字装饰:无;
}
无论如何,您不需要在文本装饰上设置
inherit
,因为装饰不会从父级继承到子级:下划线效果在父级上,并穿过子级;孩子无法删除它(模即bug)。'文本装饰:在孩子身上“无”是正确的,除非你想要两个下划线……

试试看

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

这样可以去掉你的蓝色和下划线。您可以使用类似的表达式作为下划线,但最好只使用文本装饰:无,因为这都是继承的文本装饰,在不完全必要时无需使用表达式(使用表达式时会影响性能).

Internet Explorer Internet Explorer 7和早期版本不支持除方向和可见性以外的任何属性的值inherit。我第一次看到:表达式。比复制标记或使用JS库更优雅的解决方案。我喜欢这个。这对我来说是一个很好的例子,一个表达在这里是完美的。
a.no-decor{
  color:inherit;
  //color:expression(this.parentNode.currentStyle['color']);
  text-decoration:none;
}