J'ai un projet hérité et il y a des endroits où c'est un vrai bordel. C'est l'un d'eux. Je dois cibler uniquement IE (toute version).
#nav li {
float: left;
height: 54px;
background: #4f5151;
display: table;
border-left: 1px solid grey;
}
Pour être clair: à l' intérieur de la feuille de style incorporée et sans ajouter d'ID ou de classes aux balises en html, je dois appliquer le style de bordure uniquement si l'utilisateur utilise IE. Comment puis-je faire ceci?
Edit: a trouvé une solution pour Firefox, éditant la question pour refléter cela.
Réponses:
Internet Explorer 9 et versions antérieures : vous pouvez utiliser des commentaires conditionnels pour charger une feuille de style spécifique à IE pour toute version (ou combinaison de versions) que vous souhaitez cibler spécifiquement, comme ci-dessous à l'aide d'une feuille de style externe.
Cependant, à partir de la version 10, les commentaires conditionnels ne sont plus pris en charge dans IE.
Internet Explorer 10 et 11: créez une requête multimédia à l'aide de -ms-high-contrast, dans laquelle vous placez vos styles CSS spécifiques à IE 10 et 11. Étant donné que -ms-high-contrast est spécifique à Microsoft (et uniquement disponible dans IE 10+), il ne sera analysé que dans Internet Explorer 10 et versions ultérieures.
Microsoft Edge 12: peut utiliser la règle @supports Voici un lien avec toutes les informations sur cette règle
Détection de règles en ligne IE8
J'ai 1 option de plus, mais elle ne détecte que IE8 et les versions inférieures.
Comme vous l'avez spécifié pour la feuille de style intégrée. Je pense que vous devez utiliser la requête multimédia et le commentaire de condition pour la version ci-dessous.
la source
-ms-high-contrast:active
affecte Edge si le système utilise le mode de contraste élevé.@supports
solution est vraiment géniale: la détection des fonctionnalités est le chemin à parcourir. J'étais prêt à cibler Edge en raison de son manque de support dewidth: max-content
: le@supports not (width: max-content)
fait-il proprement, et sera bien ignoré lorsque Edge finira par le soutenir. (Cela devrait arriver à l'automne 2019, car il devrait ensuite passer à Chromium pour le rendu.)Voici une collection de requêtes multimédias qui vous permettront de le faire pour n'importe quelle version d'Internet Explorer (d'IE6 à IE11 +), Firefox, Chrome et Safari (EDIT: également ajouté Opera).
IE 6
ou
IE 7
ou
IE 6 et 7
ou
ou
IE 6, 7 et 8
IE 8
ou
Mode standard IE 8
IE 8,9 et 10
IE 9 uniquement
IE 9 et supérieur
IE 9 et 10
IE 10 uniquement
IE 10 et supérieur
ou
IE 11 (et supérieur ..)
Firefox (toute version)
Firefox (Quantum uniquement / Stylo)
Firefox Legacy (pré-Stylo)
Webkit (Chrome et Safari, toute version)
Google Chrome (29+)
Safari (7.1+)
Safari (de 6.1 à 10.0)
Safari (10.1+)
Opéra (12+)
Opera (11 et moins)
Pour de plus amples informations ou des questions supplémentaires sur les médias, visitez le site Web browserhacks.com et / ou consultez cet article de blog que j'ai écrit sur ce sujet.
la source
Lors de l'utilisation,
SASS
j'utilise les 2 suivants@media queries
pour cibler IE 6-10 & EDGE.http://keithclark.co.uk/articles/moving-ie-specific-css-into-media-blocks/
Éditer
Je cible également les versions ultérieures d'EDGE en utilisant
@support queries
(ajoutez-en autant que vous en avez besoin)https://jeffclayton.wordpress.com/2015/04/07/css-hacks-for-windows-10-and-spartan-browser-preview/
la source
Pour cibler IE uniquement dans mes feuilles de style, j'utilise ce mixage Sass:
la source
Une autre solution de travail pour un style spécifique à IE est
Et puis votre sélecteur
la source
Après avoir rencontré des problèmes avec des sites se brisant sur Edge lors de l'utilisation du mode contraste élevé, je suis tombé sur le travail suivant de Jeff Clayton:
https://browserstrangeness.github.io/css_hacks.html
C'est une requête médiatique folle et bizarre, mais celles-ci sont plus faciles à utiliser dans Sass:
Cela cible les versions IE attendues pour IE8.
Ou vous pouvez utiliser:
Qui cible IE8-11, mais déclenche également FireFox 1.x (ce qui n'a pas d'importance pour mon cas d'utilisation).
En ce moment, je teste avec le support d'impression, et cela semble fonctionner correctement:
la source