Условный файл CSS не переопределяет обычный CSS - PullRequest
1 голос
/ 27 мая 2010

Я использую условные комментарии для ссылки на файл CSS (назовем его «IEonly.css»), если версия IE меньше 8. Я пытаюсь переопределить некоторые свойства в обычном файле CSS. Как ни странно, IEonly.css будет правильно устанавливать новые свойства CSS, но он не будет переопределять свойства в обычном файле CSS!

(я пытаюсь заставить это работать для IE7).

Помощь!

РЕДАКТИРОВАТЬ: Я добавил! Важный после стиля CSS, чтобы посмотреть, поможет ли это. Это не так.

Ответы [ 6 ]

6 голосов
/ 27 мая 2010

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

Убедитесь, что ваши селекторы являются подходящими, и что вы применяете таблицы стилей в правильном порядке.

3 голосов
/ 28 мая 2010

Если вы используете одни и те же селекторы в обеих таблицах стилей, то все будет в порядке, если вы поместите условную таблицу стилей IE после обычной таблицы стилей. Если вы сделаете это, а ваш лист IE не будет загружен, возможно, вам придется написать более конкретные селекторы.

#sidebar #nav li a { }

вместо ...

#nav li a { }

или

li a { }
1 голос
/ 27 мая 2010

Возможно, вы сможете реорганизовать таблицы стилей по умолчанию в стили IE и использовать условное if !IE для переопределений "хорошего браузера".

1 голос
/ 27 мая 2010

Не забывайте, что вы также можете использовать правило !important для переопределения определений CSS. Вот документация W3C по этому правилу.

0 голосов
/ 28 мая 2010

Основываясь на собственном опыте подобных проблем, я могу предположить, что в вашем файле IEonly.css скрывается какой-то плохой или отсутствующий персонаж. Их может быть очень трудно отследить, поэтому сделайте следующее:

  1. Временно удалите все CSS из IEonly.css, кроме той части, которую вы будете использовать для переопределения обычного CSS. Проверьте, работает ли это. Если это произойдет, продолжайте вставлять код обратно в файл, в разделы, как вы считаете нужным. Надеюсь, вы найдете проблему.
  2. Если переопределение не сработало, когда в файле существовала только та часть кода, убедитесь, что у вас есть правильные селекторы и что специфика в порядке.

Вы также можете попробовать прочитать http://www.w3.org/TR/CSS2/cascade.html#important-rules для получения дополнительной информации.

Можете ли вы опубликовать некоторый код, чтобы мы могли на него посмотреть? Это помогло бы.

0 голосов
/ 27 мая 2010

Я добавил класс к элементу и сослался на него в таблице стилей IEonly с селектором класса и обычной таблицей стилей без. Это привело к тому, что объявление стиля IEonly переопределило обычное.

...