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;
}

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



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.


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.


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.


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.

En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.