Наследование CSS IE7 не работает

Я установил некоторый стиль для тегов h2 (цвет, размер шрифта и т.д.), но когда я помещаю тег "A" внутри, тогда стиль становится ссылкой. Мой html:

<h2>
  <a class="no-decor" href="#" onclick="location.href='http://localhost/xxx/'; return false;">Link</a>
</h2>

Итак, как вы видите, я создал класс "no-decor". Он должен наследовать стиль h2 для тега "a".

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

В Firefox каждый тигр в порядке, но IE по-прежнему показывает стиль "a" (подчеркивание текста и синий цвет). Я знаю, я могу установить некоторый стиль для "h2 a", но, возможно, каким-то образом можно заставить работу CSS наследовать значения на IE7?

P.S. В IE6 тоже не поддерживается.

P.P.S. Существует несколько примеров: http://www.brunildo.org/test/inherit.html

Ответ 1

Нет, IE никогда не поддерживал inherit для любого свойства - извините. Это было исправлено в >= IE8.

Хотя вы можете использовать исправление JavaScript для копирования свойств с h2 на a, возможно, проще всего применить одно и то же правило стилирования к обоим элементам:

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

В любом случае вам не нужно устанавливать inherit на оформление текста, потому что украшение не наследуется от родителя к ребенку: эффект подчеркивания находится на родительском устройстве и проходит через дочерний элемент; ребенок не может удалить его (по модулю ошибок IE). "text-decoration: none" на ребенке - это правильная вещь, если вы не хотите, возможно, два подчеркивания...

Ответ 2

попробовать

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

Это избавит вас от вашего синего цвета и подчеркивания. Вы могли бы использовать аналогичное выражение для подчеркивания, но вам было бы лучше просто использовать текстовое украшение: ни один, поскольку все унаследованное текстовое оформление вам все равно дадут и вам не понадобится использовать выражения, если они не являются абсолютно необходимыми (вы, При использовании выражений снижаем производительность.

Ответ 3

Исправлена ​​ошибка, и вы ничего не могли сделать, кроме обходных решений.

Там есть тест для наследования поддержки здесь.

Вы также можете попробовать использовать script как ie7-js, который "является библиотекой JavaScript, чтобы заставить Microsoft Internet Explorer вести себя как браузер, совместимый со стандартами"

Ответ 4

Версия Internet Explorer <= 7 не поддерживает значение inherit для любых свойств, отличных от direction и visibility.