Назначение звездочки перед свойством CSS

101

Следующее взято из сброса Yahoo CSS. Может кто-нибудь объяснить, зачем нужны звездочки?

body {
  font:13px/1.231 arial,helvetica,clean,sans-serif;
  *font-size:small;
  *font:x-small;
}
Джереми
источник

Ответы:

117

Это специальный CSS-хак для браузера версии 7 или ниже Internet Explorer.

*стоимость имущества

Хотя Internet Explorer 7 исправил свое поведение, когда имя свойства предварялось знаком подчеркивания или дефиса, другие не буквенно-цифровые префиксы символов обрабатываются так же, как и в IE6. Следовательно, если вы добавите не буквенно-цифровой символ, например звездочку (*), непосредственно перед именем свойства, свойство будет применяться в IE, а не в других браузерах. В отличие от метода дефиса и подчеркивания, спецификация CSS не делает оговорок для звездочки в качестве префикса, поэтому использование этого хака может привести к неожиданному поведению по мере развития спецификаций CSS.

* property: value применяет значение свойства в IE 7 и ниже. Это может работать или не работать в будущих версиях. Предупреждение: здесь используется недопустимый CSS.

От: http://www.javascriptkit.com/dhtmltutors/csshacks3.shtml

Валид Амджад
источник
5

Это взлом Internet Explorer. Если вы добавите не буквенно-цифровой символ, например звездочку (*), непосредственно перед именем свойства, свойство будет применяться в IE7 и ниже, но не в других браузерах.

http://www.javascriptkit.com/dhtmltutors/csshacks3.shtml

Роберт Харви
источник
1

Все браузеры, кроме IE, игнорируют правила. Это называется звездным хаком. Думаю, IE7 проигнорирует правила в стандартном режиме.

В этом случае правило шрифта устанавливается, а затем переопределяется для IE 6, а иногда и 7.

Фрэнк ДеРоса
источник
Это не взлом star-html. Он входит в селектор и является действительным CSS.
bobince 06
@bobince Star Hack и Star HTML Hack - две разные вещи: en.wikipedia.org/wiki/CSS_filter#Star_hack vs en.wikipedia.org/wiki/CSS_filter#Star_HTML_hack
Майк Ковингтон,
0

Насколько мне известно, звездочка не позволяет Firefox читать атрибут, но действует в IE.

Владимир Кочянчич
источник
0

Это взлом CSS, это правило будет применяться только к IE7 и ниже.

Я бы не советовал использовать его, есть более эффективные способы исправить несовместимость IE.

Псилокан
источник
0

Размещение таких символов - это хитрость / обходной путь, позволяющий заставить IE 6 использовать свойство стиля, скрывая его от более «нормальных» браузеров.

От сюда :

Короче говоря, синтаксический анализатор CSS Internet Explorer слишком агрессивен при попытке обнаружить имена свойств и фактически игнорирует ведущие не буквенно-цифровые символы. Судя по моему тестированию, это, по крайней мере, начиная с IE5.

Джейсон Вятт
источник