10
votes

Comment puis-je définir CSS uniquement pour des navigateurs spécifiques à savoir?

J'ai un script de style CSS / JQuery Cochez la case: http://jsfiddle.net/bwacd/

Le problème est que dans les navigateurs actuels afin que la portée soit flotte sur l'entrée, la position de l'entrée doit être absolue. Mais dans IE8 et ci-dessous, le script ne fonctionnera pas et je suis donc laissé avec et absolument placé entrée qui vient de flotter sur d'autres éléments. Je ne demande pas que le script fonctionne dans IE8 et ci-dessous.

Je veux savoir comment je peux utiliser CSS pour définir un style spécifique s'il est ie8 et ci-dessous. Je suppose que JQuery serait acceptable si c'est nécessaire, mais je ne pense pas que ce soit. Je sais que cela peut être fait avec seulement CSS & HTML, je ne sais tout simplement pas comment.


0 commentaires

7 Réponses :


10
votes

2 commentaires

Wow. Merci. Je veux juste demander cependant, ces hacks sont-ils en sécurité?


Le hack est mauvais, toujours! Je suggère d'utiliser la solution de mon premier lien, mais si vous devez utiliser vraiment des hacks, j'ai trouvé ce site Web: BrowserHacks.com - Bon de savoir que ces choses existent et ils travaillent comme souhaité, mais vous ne devriez vraiment pas l'utiliser.



16
votes

Les commentaires conditionnels fonctionnent ( ), mais si vous voulez tout faire dans la feuille de style , il est une façon : xxx

La chose importante ici est la" \ 9 ", qui doit être exactement" \ 9 ". Je ne suis pas clair sur exactement pourquoi ceci est.

Edit: Le hack \ 9 n'est pas suffisant en soi. Pour exclure IE9, vous avez également besoin de : root < / code> hack : xxx

Autre navigateur en plus d'autres navigateurs, c'est-à-dire peut prendre en charge : root , alors combinez-le avec le hack \ 9 si vous 'Re l'utiliser pour cibler IE9.


4 commentaires

On dirait que le \ 9 cible réellement toutes les versions de IE, pas seulement 8 et moins. mathiasbynens.be/notes/safe-css-hacks#csss-hacks


\ 9 fonctionne bien, et puisque MS tombe des commentaires conditionnels à démarrer IE10, cela semble la seule solution JS-Free pour la cible, c'est-à-dire seulement. Merci!


C'est la réponse. Je ne sais pas ce que les autres réponses font ici


Pour cibler IE 11, vous devez utiliser \ 0 et pour d'autres recherches sur une solution moins de solution: couleur: E ("green \ 0");



3
votes

Edit (28 août): Notez que la réponse suivante est pertinente, dans la pratique, uniquement pour Internet Explorer, au moins versions 8 et antérieures. À ma connaissance, aucun navigateur grand public ne prend désormais en charge les commentaires conditionnels, pas même Internet Explorer 11.


Vous pouvez utiliser les commentaires conditionnels d'Internet Explorer pour ajouter un nom de classe à la balise racine HTML Pour les plus âgés de navigateurs IE: P>

.ie8 body {
   /* Will apply only to IE8 */
}


0 commentaires

2
votes

Cible Toutes les versions de IE:

<!--[if gt IE 7]>
    <link rel="stylesheet" type="text/css" href="ie8-and-up.css" />
<![endif]-->
<!--[if gte IE 8]>
    <link rel="stylesheet" type="text/css" href="ie8-and-up.css" />
<![endif]-->


0 commentaires

1
votes

J'ai une solution utile pour IE 10 et 11. Le script vérifie l'IE et la version, puis ajoute la classe .E10 ou .IE11 à la balise.

De cette façon, vous pouvez écrire des règles spécifiques telles que .E10 .Quelque chose {} et ils ne sont appliqués que lorsque le navigateur est à savoir 10 ou 11.

Vérifiez-le, il est utile de dégradation gracieuse, testée sur quelques sites commerciaux et pas vraiment hacky: http://marxo.me/target-ie-in-css


0 commentaires


0
votes

J'ai résolu de cette manière pour le curseur de grab dans Internet Explorer:

index.html
css/style.css -> here the posted code
img/cursors/openhand.cur


0 commentaires