Наследование 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
.