Проблема CSS на веб-сайте Drupal в Internet Explorer 6

#css #internet-explorer-6

#css #internet-explorer-6

Вопрос:

Хорошо, вот в чем дело. Следующий код указан в моем Drupal page.tpl.php и все же IE6 не хочет принимать display:none часть.

 <!--[if IE 6]>
    <style type="text/css">
        .coda-nav{display:none; position:absolute; width:400px;height:20px;top:260px;right:100px;z-index:125421;}
    </style>
<![endif]-->
  

Очистка кэша Drupal или кэша браузера не помогла.
Что не так с моим кодом (мне кажется, все в порядке?)

И не спрашивайте, почему я все еще пишу код для IE6, это и так достаточно унизительно 🙂

Комментарии:

1. Вы уверены, что ваша разметка имеет класс coda-nav и что display настройка не переопределяется другим правилом где-либо еще?

2. Поскольку (по какой-то причине) для IE6 не объявлен другой файл css, я предполагаю, что это единственная строка кода, применяемая для IE6.

3. Нет. Весь CSS используется IE 6, упомянутое вами дополнительное правило применяется только к IE 6, но не к другим браузерам.

4. разве эта строка не переопределяет другие? Должно ли это иметь значение при добавлении !important ?

Ответ №1:

Все правила CSS применяются в каскадном порядке, независимо от того, находятся они внутри специфичного для IE условного комментария или нет.

В этом случае добавление !important к значению может решить вашу проблему, если только другие значения, которые также являются !important , не указаны с более высоким приоритетом.


Кстати, если вы хотите обратиться только к IE 6 и 7, вы также можете добавить другое слово, чем important после ! , например

 display: none !hotdog;
  

В этих браузерах это будет иметь тот же эффект, что и добавление !important .

Комментарии:

1. Спасибо за комментарий. Хотдог? Смехотворно 🙂 Однако !important не сработало. Я предполагаю, что с css что-то искренне не так!

2. @Michiel: Я думаю, лучшее, что вы можете сделать, это удалить этот условный комментарий и применить правило ко всем браузерам, затем загляните в веб-инспектор Firebug или Chrome и посмотрите, какие правила применяются (и попытайтесь сделать так, чтобы правило, содержащее display: none , было более важным, чем другие правила; обычно это можно сделать, уточнив элементы, к которым оно применяется).