Que signifie le smiley “:)” en CSS?

J’ai repéré ce code CSS dans un projet:

html, body { :)width: 640px;} 

J’ai été autour avec CSS depuis longtemps maintenant, mais je n’ai jamais vu ce code “:)” avant. Est-ce que cela signifie quelque chose ou est-ce juste une faute de frappe?

À partir d’un article sur javascriptkit.com , cela s’applique aux versions 7 et antérieures d’ IE :

Si vous ajoutez un caractère non alphanumérique tel qu’un astérisque ( * ) immédiatement avant un nom de propriété, la propriété sera appliquée dans IE et non dans d’autres navigateurs.

Il y a aussi un hack pour <= IE 8 :

 div { color: blue; /* All browsers */ color: purple\9; /* IE8 and earlier */ *color: pink; /* IE7 and earlier */ } 

Cependant, ce n’est pas une bonne idée, ils ne valident pas. Vous pouvez toujours travailler avec des commentaires conditionnels pour cibler des versions spécifiques d’ IE :

    

Mais pour ceux qui veulent voir le piratage réel, veuillez ouvrir cette page dans la dernière version d’IE que vous avez. Ensuite, passez en mode développeur en faisant un F12 . Dans la section Emulation ( ctrl + 8 ), changez le mode document en 7 et voyez ce qui se passe.

entrer la description de l'image ici

La propriété utilisée dans la page est :)font-size: 50px; .

Il ressemble à un hack CSS pour cibler les navigateurs IE7 et antérieurs. Bien que ce ne soit pas valide, CSS et les navigateurs devraient l’ignorer, IE7 et les versions antérieures parsingront et respecteront cette règle. Voici un exemple de ce hack en action:

CSS

 body { background: url(background.png); :)background: url(why-you-little.png); } 

IE8 (ignore la règle)

Exemple 1 - IE8

IE7 (applique la règle)

Exemple 1 - IE7

Notez qu’il ne doit pas nécessairement s’agir d’un smiley. BrowserHacks mentionne:

Toute combinaison de ces caractères:
! $ & * ( ) = % + @ , . / ` [ ] # ~ ? : < > |
[avant le nom de la propriété fonctionnera sur] Internet Explorer ≤ 7


L’exemple de stand de hot dog GAH est ici .