Действительно ли условные комментарии - это путь? И как это работает? - PullRequest
0 голосов
/ 10 мая 2010

Этот предыдущий вопрос о проблеме позиционирования div в IE дал несколько ответов, где мне сказали использовать условное комментирование.

Почему этот относительный позиционный div по-разному отображается в IE?

Как это работает, я имею в виду, как реализовать условные комментарии?

Ex:

   <div class="normal"></div>
   <!--[if IE 6]>
   <div class="IE6"></div>
   <![endif]-->

Если это проводник 6, будет ли он переопределять первый div с class = "normal"? Потому что если это не так, то в explorer 6 будет два div'а справа ...

В чем может быть проблема этого позиционирования?

Я даже пытался создать новый HTML-документ с текстом приветствия и поместить его в div с относительным положением, и в IE он ведет себя иначе, примерно на 3 пикселя ниже, чем в других браузерах ...

Спасибо

Ответы [ 2 ]

12 голосов
/ 10 мая 2010

Обычно используется для загрузки дополнительного бита CSS, который «исправляет» различные проблемы из-за ошибок IE6 / отсутствия функций.

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

<link rel="STYLESHEET" type="text/css" href="/css/common.css" />
<!--[if IE 6]>
    <link rel="STYLESHEET" type="text/css" href="/css/ie.css">
<![endif]-->

Сначала загружается наша обычная таблица стилей. Затем IE6 (только IE6) загружает вторую таблицу стилей, которая переопределяет пару определений, которые вызывают проблемы для IE.

Если вам нужен другой контент, вы можете включить оба набора контента (обычный контент и контент IE) и по умолчанию скрыть контент IE через ваш стандартный CSS (display:none), и просто переместить его в таблицу стилей IE6 css .

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

Нет, на самом деле это не тот путь.

Они нестандартные, проприетарные, плохой пример и абсолютно ненужные.

whatever {
    foo: bar !important; /* for non-IE6 */
    foo: baz; /* for IE6 */
}
child { /* for IE6 */ }
parent > child { /* for non-IE6 */ }
...