J'ai repéré ce code CSS dans un projet:
html, body { :)width: 640px;}
Cela fait longtemps que je suis avec CSS, mais je n'avais jamais vu ce code ":)" auparavant. Est-ce que ça veut dire quelque chose ou est-ce juste une faute de frappe?
D'un article sur javascriptkit.com , c'est appliqué pour IE 7 et les versions antérieures:
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 les 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 vous sentez toujours libre de travailler avec Commentaires conditionnels pour cibler des versions spécifiques de IE:
<!--[if lte IE 8]><link rel="stylesheet" href="ie-8.css"><![endif]-->
<!--[if lte IE 7]><link rel="stylesheet" href="ie-7.css"><![endif]-->
<!--[if lte IE 6]><link rel="stylesheet" href="ie-6.css"><![endif]-->
Mais pour ceux qui veulent voir le piratage en temps réel, veuillez ouvrir cette page dans la dernière version de 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.
La propriété utilisée dans la page est :)font-size: 50px;
.
Cela ressemble à un hack CSS pour cibler les navigateurs IE7 et précédents. Bien que cette soit CSS non valide et que les navigateurs ne l'ignorent pas, IE7 et les versions antérieures analyseront et honoreront 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)
IE7 (applique la règle)
Notez qu'il ne doit pas nécessairement s'agir d'un visage souriant; BrowserHacks mentionne:
Toute combinaison de ces caractères:
! $ & * ( ) = % + @ , . / ` [ ] # ~ ? : < > |
[avant que le nom de la propriété puisse fonctionner] Internet Explorer ≤ 7