Общий способ заставить CSS работать только в IE без отдельного листа CSS

#css #internet-explorer #if-statement

#css #internet-explorer #if-оператор

Вопрос:

Мне просто было интересно узнать о CSS для IE. Обычно у нас есть отдельная таблица стилей, и мне было интересно, есть ли какой-либо способ включить разные параметры в один лист, например:

 h1 {
    /* font size for Firefox to be 22px */
    font-size: 22px;
    /* font size for Internet Explorer to be 20px */
    font-size: 20px;
}
  

Т. е. мой вопрос, возможно ли иметь все параметры на одном листе CSS с условиями.

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

1. Ознакомьтесь с заголовком «Хаки» на этой странице .

2. @BradChristie: 1 отличный ресурс

3. @BradChristie: 1 большое спасибо, это именно то, что я хотел!

4. @OuterbridgeMike: Добро пожаловать. Опубликовал это как ответ, теперь я знаю, что это то, что вы искали.

Ответ №1:

Просто чтобы он был опубликован в качестве ответа (не был на 100% уверен, что это то, что вы хотели)…

Проверьте http://css-tricks.com/132-how-to-create-an-ie-only-stylesheet и посмотрите на хаки, посвященные встроенным стилям, которые применимы только к определенным версиям IE. например

Только для IE 6

 * html #div {
    height: 300px;
}
  

Только для IE 7

 * html #div {
    height: 300px;
}
  

Только для IE 8

 #div {
  height: 300px0/;
}
  

Только для IE 7 и 8

 #div {
  height: 300px9;
}
  

Не только для IE 7

 #div {
   _height: 300px;
}
  

Скрыть из IE6 и ниже

 #div {
   height/**/: 300px;
}

html > body #div {
      height: 300px;
}
  

Цитируется для справки и избыточности (на случай, если ссылка оборвется в будущем).

Ответ №2:

Вы можете использовать эти хаки http://dimox.net/personal-css-hacks-for-ie6-ie7-ie8 /

Ответ №3:

Если вы хотите запустить какой-либо серверный код, вам следует использовать препроцессор CSS, такой как LESS.

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

1. Я не знал, что это можно сделать в строке, учитывая, что <!-- и --> не являются синтаксически правильными (допустимые токены) в файле CSS.

2. -1: Условные комментарии предназначены для использования только в документах HTML / XHTML. Они не работают в документах CSS (любой браузер будет правильно читать и интерпретировать font-size: 20px; и игнорировать строки с условными обозначениями). Кроме того, они должны использоваться вне <style> тегов в документах HTML / XHTML, что делает ваш пример совершенно неправильным во всех сценариях.

3. условные комментарии могут использоваться только в html, а не в файле css

4. Эти теги (<!—[if IE]>) are only for html but not for css. Я думаю.

5. Извините за всю эту путаницу. Добавлено разъяснение в ответе, а также альтернатива использованию препроцессора CSS.