IE 7 не использует самое конкретное правило CSS - PullRequest
2 голосов
/ 09 августа 2011

Я хочу стилизовать все мои th элементы одинаково (белый текст на черном фоне), за исключением нескольких случаев, когда это форматирование не требуется - в этом случае я добавляю класс no-headers к элементу таблицы .

th {background-color: #000000; color:#FFF;}
table.no-headers th {color:inherit; background-color:inherit ;border:inherit; } 

Так вот несколько примеров разметки, если вам нужно немного

<table><tr><th>This has a black bground</th></tr></table>
<table class="no-headers"><tr><th>This inherits bground from parent</th></tr></table>

Это прекрасно работает в IE 8/9 и FF и Chrome, но не в IE 7. IE 7 просто не будет использовать 2-е правило - несмотря на то, что оно более избирательно.
На самом деле я пытался решить эту проблему всеми возможными способами, но все безрезультатно.

Я также попытался добавить класс без заголовков для элемента th

th {background-color: #000000; color:#FFF;}
th.no-headers {color:inherit; background-color:inherit ;border:inherit; } 

<table><tr><th class="no-headers">This inherits bground from parent</th></tr></table>

и даже это не работает - у меня остается ощущение, что я делаю что-то действительно явно глупое / неправильное - но опять же, оно отлично работает в других браузерах!

Любая помощь с благодарностью.

Ответы [ 3 ]

5 голосов
/ 09 августа 2011

IE7 не распознает ключевое слово inherit (за исключением нескольких непонятных свойств).

Лучше всего указывать цвета по умолчанию вручную.

1 голос
/ 09 августа 2011

IE7 не поддерживает наследование стилей.Это было введено в IE8.

См .: Наследование CSS в IE7 не работает

Это не большая проблема, поскольку IE8 является универсальным обновлением с IE7, в отличие от IE9, которая доступна только для Windows NT6 и выше.

1 голос
/ 09 августа 2011

Согласно этому сообщению SO: Наследование CSS в IE7 не работает IE не поддерживал наследование до IE8.Поэтому вам нужно будет указать цвет, фон и границы.

...