Zweck des Sternchens vor einer CSS-Eigenschaft

101

Das Folgende stammt aus dem Zurücksetzen von Yahoo CSS. Kann jemand bitte den Zweck der Sternchen erklären?

body {
  font:13px/1.231 arial,helvetica,clean,sans-serif;
  *font-size:small;
  *font:x-small;
}
Jeremy
quelle

Antworten:

117

Es ist ein browserspezifischer CSS-Hack für Versionen 7 oder niedriger von Internet Explorer.

*Eigentumswert

Obwohl Internet Explorer 7 sein Verhalten korrigiert hat, wenn einem Eigenschaftsnamen ein Unterstrich oder ein Bindestrich vorangestellt wird, werden andere nicht alphanumerische Zeichenpräfixe wie in IE6 behandelt. Wenn Sie daher unmittelbar vor einem Eigenschaftsnamen ein nicht alphanumerisches Zeichen wie ein Sternchen (*) hinzufügen, wird die Eigenschaft im IE und nicht in anderen Browsern angewendet. Anders als bei der Methode mit Bindestrich und Unterstrich werden in der CSS-Spezifikation keine Vorbehalte für das Sternchen als Präfix vorgenommen. Die Verwendung dieses Hacks kann daher zu unerwartetem Verhalten führen, wenn sich die CSS-Spezifikationen weiterentwickeln.

* property: value wendet den Eigenschaftswert in IE 7 und darunter an. Es kann in zukünftigen Versionen funktionieren oder nicht. Warnung: Hierbei wird ungültiges CSS verwendet.

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

Waleed Amjad
quelle
5

Es ist ein Internet Explorer-Hack. Wenn Sie unmittelbar vor einem Eigenschaftsnamen ein nicht alphanumerisches Zeichen wie ein Sternchen (*) hinzufügen, wird die Eigenschaft in IE7 und darunter angewendet, jedoch nicht in anderen Browsern.

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

Robert Harvey
quelle
1

Alle Browser außer IE ignorieren die Regeln. Es ist als Star Hack bekannt. Ich denke, IE7 wird die Regeln im Standardmodus ignorieren.

In diesem Fall wird die Schriftartregel festgelegt und dann für IE 6 und manchmal 7 überschrieben.

Frank DeRosa
quelle
Dies ist nicht der Star-HTML-Hack. Dieser geht in den Selektor und ist gültiges CSS.
Bobince
@ Bobince Star Hack und Star HTML Hack sind zwei verschiedene Dinge: en.wikipedia.org/wiki/CSS_filter#Star_hack vs en.wikipedia.org/wiki/CSS_filter#Star_HTML_hack
Mike Covington
0

Soweit ich weiß, verhindert das Sternchen, dass Firefox das Attribut liest, ist jedoch im IE gültig.

Vladimir Kocjancic
quelle
0

Es ist ein CSS-Hack, diese Regel wird nur auf IE7 und darunter angewendet.

Ich würde es jedoch nicht empfehlen, es gibt bessere Möglichkeiten, IE-Inkompatibilitäten zu beheben.

Psilokan
quelle
0

Das Platzieren solcher Zeichen ist ein Hack / Workaround, um IE 6 dazu zu bringen, die Eigenschaft eines Stils zu verwenden und sie gleichzeitig vor "vernünftigeren" Browsern zu verbergen.

Von hier aus :

Um es kurz zu machen, der Internet Explorer CSS-Parser versucht zu aggressiv, die Namen von Eigenschaften zu ermitteln, und ignoriert in der Tat führende nicht alphanumerische Zeichen. Nach meinen Tests scheint dies mindestens ab IE5 der Fall zu sein.

JasonWyatt
quelle