Это может помочь уточнить вещи, чтобы упомянуть это:
IE условные комментарии , такие как <!--[if IE 6]><![endif]-->
, могут быть в значительной степени * в любом месте документа. В <head>
, в <body>
, в элементе <li>
или <form>
и т. Д. Содержимое внутри него (которое может быть чем угодно *) будет отображаться (или нет) в соответствии с используемым правилом.
* Могут быть исключения, но я не знаю каких-либо конкретных.
Зная это, вопрос действительно сводится к тому, «где я могу поставить <link>
метку», что, конечно, в <head>
, как упоминалось в других ответах.
Существует другой способ нацеливания на IE, описанный здесь:
http://paulirish.com/2008/conditional-stylesheets-vs-css-hacks-answer-neither/
Какое-то время сообщество стандартизации сплотилось вокруг
условные таблицы стилей как решение проблемы валидации.
Однако есть несколько проблем:
- Условные таблицы стилей означают 1 или 2 дополнительных HTTP-запроса для загрузки
- Поскольку они находятся в, рендеринг страницы ждет, пока они полностью не загрузятся.
- Также - лучшие практики внутреннего кодирования Yahoo не рекомендуют условные таблицы стилей
- Может разделить одно правило CSS на несколько файлов. Я потратил много времени на размышления "Откуда исходит это правило !?"
когда он оказался спрятан в условной таблице стилей.
Вот мое предлагаемое решение:
<!--[if lt IE 7]> <html class="ie6"> <![endif]-->
<!--[if IE 7]> <html class="ie7"> <![endif]-->
<!--[if IE 8]> <html class="ie8"> <![endif]-->
<!--[if gt IE 8]><!--> <html> <!--<![endif]-->
Используя те же условные комментарии, мы просто условно добавляем
дополнительный класс на HTML-тег. Это позволяет нам сохранить
специфичные для браузера CSS в том же файле:
div.foo { color: inherit;}
.ie6 div.foo { color: #ff8000; }
Плюс он полностью проверяется и работает во всех браузерах.
Я настоятельно рекомендую эту технику для атаки на IE, определенно стоит проверить.