IE7 CSS继承不起作用

Paw*_*wka 34 css internet-explorer internet-explorer-7

我为h2标签设置了一些样式(颜色,字体大小等),但是当我把"A"标签放在里面时,样式就变成了链接.我的HTML:

<h2>
  <a class="no-decor" href="http://localhost/xxx/">Link</a>
</h2>
Run Code Online (Sandbox Code Playgroud)

所以,正如你所看到的,我创造了"无装饰"课程.它应该继承h2的"a"标签样式.

a.no-decor {
  color:inherit;
  font-family:inherit;
  font-size:inherit;
  font-weight:inherit;
  text-decoration:inherit;
}
Run Code Online (Sandbox Code Playgroud)

在Firefox上,everythig没问题,但IE仍显示标签"a"样式(下划线文字装饰和蓝色).我知道,我可以为"h2 a"设置一些样式,但也许某种程度上可以强制工作CSS继承IE7上的值?

PS On IE6也不支持.

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

bob*_*nce 55

不,IE从未支持inherit任何财产 - 抱歉.这已在> = IE8中修复.

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

h2, h2 a {
    font: something;
    color: black;
    text-decoration: none;
}
Run Code Online (Sandbox Code Playgroud)

你无论如何都不需要设置inherit文本修饰,因为装饰不会从父级继承到子级:下划线效果在父级上并通过子级; 孩子无法删除它(模块IE错误).孩子的'text-decoration:none'是正确的,除非你想要两个下划线......

  • Internet Explorer 7及更早版本不支持除方向和可见性之外的任何属性的值继承. (14认同)

小智 16

尝试

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

这将摆脱你的蓝色和下划线.你可以使用类似的表达式作为下划线,但你最好只使用text-decoration:none,因为所有继承的文本修饰都会给你无论如何都不需要使用表达式而不是绝对必要的(你'在使用表达式时会受到性能影响).