J'utilise CSS depuis longtemps mais je n'ai jamais vu ce code ":)" auparavant. Est-ce que cela signifie quelque chose ou est-ce juste une faute de frappe?
Ça ressemble à une faute de frappe pour moi. Le développeur essaie-t-il d'être amusant, ou peut-être un moyen pour lui de marquer les zones du code qu'il recherchera?
Lee
2
@stijn pourrait encore être un code spécifique de fournisseur étrange ...
Mark
22
@ series0ne Je suppose que vous n'avez jamais vu le piratage d'astérisque d'Internet Explorer.
Nit
11
S'il s'agit bien d'un piratage de navigateur, vous voudrez ajouter un commentaire dans le fichier CSS pour l'expliquer.
user247702
32
Ma conjecture: l'auteur du code a tapé :) pensant que l'accent était mis sur le client de messagerie instantanée. Quand ce n'était pas le cas, ils ont cliqué sur le client de messagerie instantanée et sont partis de là, ne réalisant jamais qu'ils avaient tapé un smiley à la dernière place où leur curseur était assis, qui était le fichier CSS.
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 d'autres navigateurs.
Il existe également un hack pour <= IE 8 :
div {
color: blue;/* All browsers */
color: purple\9;/* IE8 and earlier */*color: pink;/* IE7 and earlier */}
Mais ce n'est pas une bonne idée, ils ne valident pas. Vous vous sentez toujours libre de travailler avec des commentaires conditionnels pour cibler des versions spécifiques d' IE :
Mais pour ceux qui veulent voir le hack en vrai, veuillez ouvrir cette page dans la dernière version d'IE que vous avez. Passez ensuite en mode développeur en faisant a F12. Dans la section Emulation ( ctrl+ 8), changez le mode du document en 7et voyez ce qui se passe.
La propriété utilisée dans la page est :)font-size: 50px;.
je connaissais "_" et "*" avant le sélecteur, mais pas celui-ci que vous avez dit.
valerio0999
2
@vlrprbttst Ce sont des caractères conventionnels utilisés pour la facilité. Cependant, il conclut toutes les valeurs non alphanumériques.
revo
1
Je marque cette réponse comme correcte bien que Salman-a soit également correct mais un tout petit peu plus lent. J'étais au courant de ce hack mais j'ai toujours utilisé un "*". Celui qui a fait cette page est un farceur;).
Mark
1
Je suis peut-être assez stupide pour manquer quelque chose ici, mais pourquoi peut-il le faire en utilisant 2 caractères? Il dit "ajouter un non alphanumérique", pas "ajouter un ou plusieurs ...". Ou cela :signifie-t-il autre chose? Sinon, je ne peux pas mettre *********************font-size: "150%";, etc.?
Max
1
Juste pour ajouter une partie supplémentaire à cette réponse. La réponse est excellente et correcte, mais sans cela, ce n'est pas la meilleure pratique. En règle générale, vous devez faire de votre mieux pour offrir la meilleure expérience dans tous les navigateurs que votre base d'utilisateurs utilise. Sans parler, à mon avis, vous ne devriez pas prendre en charge les navigateurs que la société qui les a créés ne prend plus en charge.
AlienDev
171
Il ressemble à un hack CSS pour cibler IE7 et les navigateurs précédents. Bien que ce CSS ne soit pas valide et que les navigateurs devraient l'ignorer, IE7 et versions antérieures analyseront 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)
IE7 (applique la règle)
Notez qu'il ne doit pas nécessairement être un visage souriant; BrowserHacks mentionne:
Toute combinaison de ces caractères:
[avant que le nom de propriété ne fonctionne] Internet Explorer ≤ 7 ! $ & * ( ) = % + @ , . / ` [ ] # ~ ? : < > |
Oui, depuis IE8 et vers le haut, IE se considère comme conforme à CSS et rompt peu à peu tous leurs correctifs CSS spécifiques à IE. (nous devons donc recourir à des solutions javascript)
Flip Vernooij
39
Tous les sites doivent utiliser un thème de stand de hot-dogs pour tous les utilisateurs <IE10. +1
Pete TNT du
6
@ikkuh Pour être juste, IE11 est un navigateur assez décent et conforme. Il y a une raison pour laquelle ils ont abandonné le support des commentaires conditionnels IE.
ajp15243
2
@ apj15243 Oui, ils ont parcouru un long chemin et espèrent qu'ils continueront, la vérité est que j'ai encore besoin d'un support conditionnel pour cela, et ce n'est pas seulement IE11, mais aussi 10,9 et 8. Alors souhaitons une auto- mise à jour également, il n'y a aucune raison de ne pas exécuter IE11 sur XP autre que des raisons commerciales. Mais c'est une discussion différente.
Réponses:
À partir d'un article sur javascriptkit.com , cela s'applique à IE 7 et aux versions antérieures:
Il existe également un hack pour <= IE 8 :
Mais ce n'est pas une bonne idée, ils ne valident pas. Vous vous sentez toujours libre de travailler avec des commentaires conditionnels pour cibler des versions spécifiques d' IE :
Mais pour ceux qui veulent voir le hack en vrai, veuillez ouvrir cette page dans la dernière version d'IE que vous avez. Passez ensuite en mode développeur en faisant a F12. Dans la section Emulation ( ctrl+ 8), changez le mode du document en
7
et voyez ce qui se passe.La propriété utilisée dans la page est
:)font-size: 50px;
.la source
:
signifie-t-il autre chose? Sinon, je ne peux pas mettre*********************font-size: "150%";
, etc.?Il ressemble à un hack CSS pour cibler IE7 et les navigateurs précédents. Bien que ce CSS ne soit pas valide et que les navigateurs devraient l'ignorer, IE7 et versions antérieures analyseront et respecteront cette règle. Voici un exemple de ce hack en action:
CSS
IE8 (ignore la règle)
IE7 (applique la règle)
Notez qu'il ne doit pas nécessairement être un visage souriant; BrowserHacks mentionne:
L'exemple du stand de hot-dogs GAH est ici .
la source