Qui modernizr test(s) cible IE8?
Je suis en train de mettre en place des sélecteurs css, et j'ai besoin de mettre en place plusieurs que je veux être ignoré dans IE8 (en fait tout IE < IE9, mais c'est ok).
Qui sélecteur puis-je utiliser en toute sécurité en sachant que tous les navigateurs (y compris IE9) appuyer sur le sélecteur, mais IE8 ne parvient pas?
En d'autres termes, je cherche à faire quelque chose comme
.someselectorthatfailsinie .mystyle { stuff for new browsers }
EDIT: Ce que je suis en train de faire avec le CSS est la cible et le style des cases à cocher et des boutons radio. Alors que IE8 prend en charge CERTAINS de ce traitement-la boîte personnalisée -- il ne prend pas en charge la input[type=checkbox]:checked + label:before
nécessaire pour les pseudo-cases de travail.
J'ai donc voulu "cacher" l'ensemble de la css effort de IE8, et de le laisser montrer la valeur par défaut non stylé cases à cocher.
- IE8 déjà ignorer les styles, il ne prend pas en charge. Et, si le
stuff for new browsers
est à l'aide des fonctionnalités particulières, pourquoi ne pas choisir par ceux-là? - En fonction de votre problème spécifique, vous pouvez trouver cet article utile: impressivewebs.com/browser-support-css3-selectors
- Si vous voulez vraiment le style que par la version, "Cibler Explicitement les versions IE sans hacks à l'aide de HTML et CSS."
- Voir mes modifications ci-dessus que la raison pour laquelle je fais cela.
Vous devez vous connecter pour publier un commentaire.
Il y a tellement de choses que ie ne gère pas, en général, je fais ceci:
.sans boxshadow .classname {border:1px solid #ddd}
Aller à http://caniuse.com/ pour voir ce que IE 8 ne gère pas.
Le problème avec VenomVendor la réponse est que .noie .mystyle est en s'appuyant sur javascript doit être activé pour utiliser pour la majorité des navigateurs, qui sont modernes. C'est beaucoup de travail. Juste le design de votre site pour les navigateurs modernes puis utilisez la fonctionnalité de détection d'adresse des navigateurs plus anciens.
Il serait préférable d'ajouter une instruction conditionnelle et juste cible ie8 ou ie9, mon code html ressemble à ça, basée sur le Standard et évite de mettre IE en mode de compatibilité. IE10 et ci-dessus ne reconnaît pas les commentaires conditionnels.
Ensuite, si je veux obtenir ie8, je peux le faire:
ou IE 8 et sous
ajouter
noie
classe pour les navigateurs plus élevé que IE8 & autres broswers.Pour répondre à la question d'origine, IE8 ne prend pas en charge la
canvas
élément. Modernizr va ajouter de lacanvas
classe à la<html>
balise pour les navigateurs modernes, et sinon, il va ajouter de lano-canvas
classe pour IE8 et ci-dessous. Par conséquent, vous pourriez le faire pour cible les navigateurs modernes:Sinon, vous pourriez le faire à la cible IE8 et inférieur:
Cependant, il ya un couple de choses que la peine de mentionner ici...
Navigateurs n'honorera pas les sélecteurs CSS et les propriétés qu'ils ne prennent pas en charge.
Si l'intention est vraiment cacher votre navigateur moderne CSS à partir de IE8 entièrement, vous devez vous servir de séparer les feuilles de style complètement via les instructions conditionnelles, comme ceci:
Du point de vue architectural, en supposant les navigateurs modernes sont la première classe des citoyens dans votre style d'objectifs, de vos feuilles de style doivent être écrit à partir de leur perspective moderne comme une norme. Cela rendra votre processus global de développement plus facile, ainsi que épuré avec des classes qui inutilement cible "moderne" des navigateurs. Cible IE8 et ci-dessous avec la
no-canvas
de classe, et l'emporter sur le navigateur moderne CSS qui y sont, pour revenir à la IE8 cases à leur état par défaut. Vous pouvez ensuite facilement tailler cette auto-contenues sur-ride à partir de votre base de code CSS lorsque vient le temps de déposer IE8 soutien.J'ai écrit un Codepen exemple pour illustrer l'utilisation de
canvas
etno-canvas
.J'ai trouvé que ES5 les méthodes de tableau de travail pour la détection de IE8 et inférieur. Il m'est arrivé d'utiliser le forEach dans mon code.
http://caniuse.com/#search=ECMAScript%205
À l'aide de Modernizr vous pouvez vérifier
.no-es5array
ou.es5array
en CSS etModernizr.es5array
en JS.https://modernizr.com/download?es5array-dontmin-setclasses&q=es5array