Objectif de l'astérisque avant une propriété CSS

101

Ce qui suit est tiré de la réinitialisation de Yahoo CSS. Quelqu'un peut-il expliquer le but des astérisques?

body {
  font:13px/1.231 arial,helvetica,clean,sans-serif;
  *font-size:small;
  *font:x-small;
}
Jérémie
la source

Réponses:

117

Il s'agit d'un hack CSS spécifique au navigateur pour les versions 7 ou inférieures d'Internet Explorer.

*valeur de la propriété

Bien qu'Internet Explorer 7 ait corrigé son comportement lorsqu'un nom de propriété est précédé d'un trait de soulignement ou d'un trait d'union, les autres préfixes de caractères non alphanumériques sont traités comme ils l'étaient dans IE6. Par conséquent, si vous ajoutez un caractère non alphanumérique tel qu'un astérisque (*) juste avant un nom de propriété, la propriété sera appliquée dans IE et non dans les autres navigateurs. Contrairement à la méthode des tirets et des traits de soulignement, la spécification CSS ne fait aucune réserve pour l'astérisque comme préfixe, donc l'utilisation de ce hack pourrait entraîner un comportement inattendu à mesure que les spécifications CSS évoluent.

* property: value applique la valeur de propriété dans IE 7 et ci-dessous. Cela peut ou non fonctionner dans les versions futures. Attention: cela utilise du CSS invalide.

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

Waleed Amjad
la source
5

C'est un hack d'Internet Explorer. Si vous ajoutez un caractère non alphanumérique tel qu'un astérisque (*) juste avant un nom de propriété, la propriété sera appliquée dans IE7 et ci-dessous, mais pas dans les autres navigateurs.

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

Robert Harvey
la source
1

Tous les navigateurs sauf IE ignorent les règles. C'est connu comme le hack star. Je pense que IE7 ignorera les règles en mode standard.

Dans ce cas, la règle de police est définie puis remplacée pour IE 6 et parfois 7.

Frank DeRosa
la source
Ce n'est pas le hack star-html. Celui-ci va dans le sélecteur et est valide CSS.
bobince
@bobince Star Hack et Star HTML Hack sont deux choses différentes: en.wikipedia.org/wiki/CSS_filter#Star_hack vs en.wikipedia.org/wiki/CSS_filter#Star_HTML_hack
Mike Covington
0

Autant que je sache, l'astérisque empêche Firefox de lire l'attribut, mais il est valide dans IE.

Vladimir Kocjancic
la source
0

C'est un hack CSS, cette règle ne sera appliquée qu'à IE7 et au-dessous.

Je ne recommanderais pas de l'utiliser cependant, il existe de meilleures façons de résoudre les incompatibilités d'IE.

Psilokan
la source
0

Placer des caractères comme celui-ci est une solution de contournement pour que IE 6 utilise la propriété d'un style, tout en le cachant à des navigateurs plus «sains».

D' ici :

Pour résumer, l'analyseur CSS d'Internet Explorer est trop agressif pour essayer de découvrir les noms de propriétés et ignorera en fait les principaux caractères non alphanumériques. D'après mes tests, cela semble être le cas à partir d'au moins IE5.

JasonWyatt
la source