¿Cómo apunto solo a Internet Explorer 10 para ciertas situaciones como CSS específico de Internet Explorer o código JavaScript específico de Internet Explorer?

160

¿Cómo apunto solo a Internet Explorer 10 para ciertas situaciones como CSS específico de Internet Explorer o código JavaScript específico de Internet Explorer?

Intenté esto, pero no funciona:

<!--[if IE 10]>    <html class="no-js ie10" lang="en"> <![endif]-->
<!--[if !IE]><!--> <html lang="en" class="no-js"> <!--<![endif]-->

Internet Explorer 10 ignora los comentarios condicionales y usa el en <html lang="en" class="no-js">lugar de <html class="no-js ie10" lang="en">.

trusktr
fuente
8
Creo que una mejor pregunta sería: ¿Cómo hago para que este CSS se vea igual en ambos navegadores?
BentOnCoding
12
IE10 PP4 todavía es compatible con la @cc_ondeclaración . Por lo tanto, para detectar si IE10 es compatible o no, puede utilizar el siguiente código: <!--[if !IE]><!--><script>if(/*@cc_on!@*/false){document.documentElement.className+=' ie10';}</script><!--<![endif]-->. (Publiqué esto como un comentario, ya que IE todavía está en desarrollo, por lo que no se sabe si la versión final también es compatible con esta característica)
Rob W
15
@RobW: su código de ejemplo será incorrecto una vez que ie11 esté desactivado. Versión mejorada: <script>if(Function('/*@cc_on return document.documentMode===10@*/')()){document.documentElement.className+=' ie10';}</script>Mejoras: no necesita comentarios condicionales; funciona incluso si el comentario elimina la compresión / procesamiento; no se agregó clase para ie11; funcionará con ie11 ejecutándose en modo de compatibilidad ie10; no necesita una etiqueta de script independiente (solo se puede agregar a otro javascript en la cabeza).
robocat
2
Ejemplo del fragmento de código anterior: jsbin.com/upofoq/2
robocat
8
Una solución más genérica es: if(document.documentMode) document.documentElement.className+=' ie'+document.documentMode+'mode';- que resuelve el 90% de los problemas (a veces fallan los modos de compatibilidad, en cuyo caso necesita otro nivel de corrección además de eso).
robocat

Respuestas:

65

Quizás puedas probar algunos jQuery como este:

if ($.browser.msie && $.browser.version === 10) {
  $("html").addClass("ie10");
}

Para utilizar este método, debe incluir la biblioteca jQuery Migrate porque esta función se eliminó de la biblioteca principal de jQuery.

Funcionó bastante bien para mí. ¡Pero seguramente no hay reemplazo para los comentarios condicionales!

Max Sohrt
fuente
3
No estoy seguro de ustedes, pero necesito usarlo == '10.0'para que funcione
lulalala
112
Advertencia: jQuery.browserya no está disponible en la versión actual de jQuery (1.9) sin un complemento. blog.jquery.com/2013/01/15/…
dave1010
2
Recomendaría: tenga enif (jQuery.browser.msie && jQuery.browser.version < 10) { // do what you will here } cuenta la versión <10 para detectar versiones anteriores de IE. IE10 y superior funciona bien con todos mis CSS3, HTML5, jquery, etc.
Dan Mantyla
1
@dan porque los comentarios condicionales funcionan en todos los navegadores IE menos de 10 los usan en lugar de saturar su JS para todos los navegadores. Simplemente diga <! - [if lte IE 9]> y puede apuntar a todas las versiones de IE inferiores a 10. No se requiere JS.
edhurtig
1
@ Marc-AndréLafortune plantea un buen punto. Como regla general, siempre debe usar el operador === y no ==. Al escribir JavaScript, debe tener esto en cuenta. stackoverflow.com/questions/359494/…
Stewart
132

No usaría JavaScript navigator.userAgento $ .browser (que usa navigator.userAgent) ya que puede ser falsificado.

Para apuntar a Internet Explorer 9, 10 y 11 (Nota: también el último Chrome):

@media screen and (min-width:0\0) { 
    /* Enter CSS here */
}

Para apuntar a Internet Explorer 10:

@media all and (-ms-high-contrast: none), (-ms-high-contrast: active) {
    /* IE10+ CSS here */
}

Para apuntar al navegador Edge:

@supports (-ms-accelerator:true) {
  .selector { property:value; } 
}

Fuentes:

Roni
fuente
Eso es muy lindo. Pero, ¿qué tan preocupados deberíamos estar al probar varios modos de documentos contra los modos de navegador en IE? ¿En qué situaciones podemos esperar que los usuarios en línea usen un modo de documento diferente del modo de navegador actual?
klewis
la gente no suele cambiar el modo del documento. Pueden, pero no he encontrado ningún sitio que requiera que el usuario cambie el modo de documento. Si está utilizando el DOCTYPE correcto, esto no es un problema en absoluto.
Roni
3
¡Eres mi héroe! Solo una nota, esto también solucionó algunas cosas desordenadas en IE11
locrizak
8
Esto también afecta a IE11, por lo que si está buscando una solución dirigida solo a IE9 / 10, esta no funcionará :-(
Lukasz Lenart el
1
¿Qué quiere decir con "todos ellos están detectando el navegador a través de navigator.userAgent"? La compilación condicional es una característica incorporada del tiempo de ejecución JScript, que no se puede falsificar a través de la cadena de agente de usuario.
BoltClock
111

Encontré una solución en este sitio donde alguien tenía un comentario valioso :

La solucion es:

if (Function('/*@cc_on return document.documentMode===10@*/')()){
    document.documentElement.className+=' ie10';
}

Eso

  • no necesita comentarios condicionales;
  • funciona incluso si el comentario elimina la compresión / procesamiento;
  • no se agregó clase ie10 en Internet Explorer 11;
  • es más probable que funcione según lo previsto con Internet Explorer 11 ejecutándose en modo de compatibilidad con Internet Explorer 10;
  • no necesita una etiqueta de script independiente (solo se puede agregar a otro código JavaScript en la cabeza).
  • no necesita jQuery para probar
Willem de Wit
fuente
3
@ dave1010 Los agentes de usuario pueden ser falsificados fácilmente. Los comentarios condicionales solo son compatibles con el motor JScript, que solo está disponible en IE4 + (incluido 10).
Rob W
2
@ dave1010 Escribir un analizador de trabajo que haga lo que estás describiendo es difícil y extremadamente improbable. Cualquiera que cree e instale deliberadamente una extensión de este tipo probablemente tenga la intención de "actuar como" IE (¿tal vez para fines de prueba automatizados en entornos que no sean Windows?). El 100% de confianza nunca está garantizado en los navegadores, pero puede acercarse lo suficiente. Los comentarios condicionales son una forma altamente confiable de detectar el motor JScript, que es utilizado por IE.
Rob W
3
La única desventaja que puedo ver es que requiere js, que condicionales no
James Westgate
44
Esta debería ser la respuesta principal, y el requisito de JS debería ser discutible para los usuarios de IE10: si JS está deshabilitado, probablemente solo sea el complemento NoScript. Creo que necesitamos más educación pública sobre la pura estupidez de NoScript (en oposición a complementos sanos como AdBlock o Ghostery).
iono
8
Sugeriría usar el código alternativo proporcionado por el autor: if (/*@cc_on!@*/false && document.documentMode === 10) {}que evita las advertencias de evaluación en los programas de enlace.
ajbeaven
62

Internet Explorer 10 ya no intenta leer comentarios condicionales.Esto significa que tratará los comentarios condicionales como lo haría cualquier otro navegador: como comentarios HTML normales, destinados a ser ignorados por completo. Mirando el marcado dado en la pregunta como ejemplo, todos los navegadores, incluido IE10, ignorarán las porciones de comentarios, resaltadas en gris, por completo. El estándar HTML5 no menciona la sintaxis de comentarios condicionales, y esta es exactamente la razón por la que han decidido dejar de admitirlo en IE10.

Sin embargo, tenga en cuenta que la compilación condicional en JScript todavía es compatible, como se muestra en los comentarios, así como en las respuestas más recientes. No va a desaparecer en el lanzamiento final tampoco, a diferenciajQuery.browser . Y, por supuesto, no hace falta decir que el rastreo de agente de usuario sigue siendo tan frágil como siempre y nunca debe usarse bajo ninguna circunstancia.

Si realmente debe apuntar a IE10, use una compilación condicional que aún pueda ver soporte en el futuro cercano o, si puede ayudarlo, use una biblioteca de detección de características como Modernizr en lugar de (o en conjunto con) la detección del navegador. A menos que su caso de uso requiera noscript o acomode IE10 en el lado del servidor, el rastreo del agente de usuario será más un dolor de cabeza que una opción viable.

Suena bastante engorroso, pero recuerde que, como un navegador moderno que cumple con los estándares web actuales 1 , suponiendo que haya escrito un código interoperable que cumpla con los estándares, no debería tener que reservar un código especial para IE10 a menos que sea absolutamente necesario, es decir, se supone que se parece a otros navegadores en términos de comportamiento y representación. 2 Y parece exagerado, dado el historial de IE, pero ¿cuántas veces ha esperado que Firefox o Chrome se comporten de la misma manera solo para encontrarse con consternación?

Si tiene una razón legítima para apuntar a ciertos navegadores, hágalo por todos los medios con las otras herramientas que se le proporcionan. Solo digo que va a ser mucho más difícil encontrar una razón hoy de lo que solía ser, y realmente no es algo en lo que pueda confiar.


1 No solo IE10, sino IE9, e incluso IE8, que maneja la mayoría del estándar CSS2.1 maduro mucho mejor que Chrome, simplemente porque IE8 estaba tan enfocado en el cumplimiento de los estándares (en ese momento CSS2.1 ya era bastante estable con solo pequeñas diferencias) de la recomendación de hoy), mientras que Chrome parece ser poco más que una demostración tecnológica medio pulida de pseudo-estándares de vanguardia.

2 Y puedo estar sesgado cuando digo esto, pero es seguro como el infierno. Si su código funciona en otros navegadores pero no en IE, las probabilidades de que sea ​​un problema con su propio código en lugar de IE10 son mucho mejores en comparación con, por ejemplo, hace 3 años, con versiones anteriores de IE. Una vez más, puedo ser parcial, pero seamos honestos: ¿tú tampoco? Solo mira tus comentarios.

BoltClock
fuente
20
Chhhh, sí, IE10 todavía está muy por detrás de webkit y gecko. Tengo un poco de CSS que se ve muy bien en webkit y horrible en IE10. Si no puedo encontrar una manera de aplicar selectivamente los estilos, tendré que abandonar dichos estilos. :(
trusktr
2
Vale la pena señalar que los comentarios condicionales se eliminaron en IE10 ya que ahora tiene un analizador HTML5. Los comentarios condicionales no son válidos según el algoritmo de análisis HTML5. Consulte la sección de características heredadas de blogs.msdn.com/b/ie/archive/2011/07/06/…
David Storey
3
@trusktr si lo codifica bien, se verá bien en todos los navegadores más recientes.
Klevis Miho
10
@KlevisMiho No es cierto, Chrome y Firefox admiten características que IE no tiene, incluso si están bien codificadas. Si quiere decir "usar solo características comunes", entonces eso no es lo mismo que "codificar bien".
trusktr
55
@Dan Mantyla: En ese caso,<!--[if !IE]><!-->stuff you don't want IE9 and below to see<!--<![endif]-->
BoltClock
36

Un buen lugar para comenzar es la documentación de soporte de estándares de IE .

A continuación, le indicamos cómo orientar IE10 en JavaScript:

if ("onpropertychange" in document && !!window.matchMedia) {
...
}

Aquí está cómo apuntar a IE10 en CSS:

@media all and (-ms-high-contrast: none) {
...
}

En caso de que IE11 necesite ser filtrado o restablecido a través de CSS, vea otra pregunta: ¿Cómo escribir un hack CSS para IE 11?

Paul Sweatte
fuente
55
Su solución CSS también afecta a IE11: \
Lukasz Lenart
11

Ambas soluciones publicadas aquí (con ligeras modificaciones) funcionan:

<!--[if !IE]><!--><script>if(/*@cc_on!@*/false){document.documentElement.className='ie10';}</script><!--<![endif]-->

o

<script>if(Function('/*@cc_on return 10===document.documentMode@*/')()){document.documentElement.className='ie10';}</script>

Incluya cualquiera de las líneas anteriores dentro de la etiqueta de encabezado de su página html antes de su enlace CSS. Y luego, en el archivo CSS, especifique sus estilos que tengan la clase "ie10" como padre:

.ie10 .myclass1 { }

¡Y voilá! - otros navegadores permanecen intactos. Y no necesitas jQuery. Puedes ver el ejemplo de cómo lo implementé aquí: http://kardash.net .

Eugene Kardash
fuente
11

He escrito un pequeño complemento de JavaScript vainilla llamado Layout Engine , que le permite detectar IE 10 (y cualquier otro navegador), de una manera simple que no puede ser falsificada, a diferencia del rastreo de agentes de usuario.

Agrega el nombre del motor de representación como una clase en la etiqueta html y devuelve un objeto JavaScript que contiene el proveedor y la versión (cuando corresponda)

Mira la publicación de mi blog: http://mattstow.com/layout-engine.html y obtén el código en GitHub: https://github.com/stowball/Layout-Engine

Matt Stow
fuente
7

Yo uso este script - que es anticuado, pero eficaz en la orientación de una separada de hojas de estilo de Internet Explorer 10 o un archivo JavaScript que se incluye sólo si el navegador es Internet Explorer 10, de la misma manera que lo haría con los comentarios condicionales. No se requiere jQuery u otro complemento.

<script>
    /*@cc_on
      @if (@_jscript_version == 10)
          document.write(' <link type= "text/css" rel="stylesheet" href="your-ie10-styles.css" />');
      @end
    @*/
</script >
Deborah
fuente
2
Frio. ¿Podría agregar un poco de información sobre cuáles son esas @statements?
trusktr
6

Puede usar PHP para agregar una hoja de estilo para IE 10

Me gusta:

if (stripos($_SERVER['HTTP_USER_AGENT'], 'MSIE 10')) {
    <link rel="stylesheet" type="text/css" href="../ie10.css" />
}
Lenny Bruyninckx
fuente
2
No tiene sentido subir la cuerda ya que los stripos no distinguen entre mayúsculas y minúsculas;)
mgutt
2
Siempre tiento por esto, pero luego recuerdo que se rompe cuando hay un cdn / cache / proxy en la parte frontal.
Johan
5

Si debe hacer esto, puede verificar la cadena del agente de usuario en JavaScript:

var isIE10 = !!navigator.userAgent.match(/MSIE 10/);

Como otras personas han mencionado, siempre recomendaría la detección de funciones.

dave1010
fuente
¿Para qué son los `` !! `?
Francisco Corrales Morales
44
String.match()devolverá una matriz para una coincidencia o nula si no lo hace. !(String.match())hace que devuelva falso para una coincidencia o verdadero para ninguna coincidencia. !(!(String.match()))hace que regrese verdadero para una coincidencia o falso para ninguna coincidencia. !(!(something))o simplemente, !!somethingpor lo tanto, convierte cualquier cosa en un booleano verdadero / falso. stackoverflow.com/questions/784929/…
dave1010
@FranciscoCorralesMorales Oh, la cantidad de veces que me han preguntado eso cuando mi código está bajo escrutinio. :) Como una expansión al gran comentario de dave1010, se puede usar para forzar los valores de 'verdad' o 'falsedad' en un booleanvalor intrínseco , por ejemplo var name = 'me', hasName = !!name;.
WynandB
4

Si desea apuntar a IE 10 con Vanilla JavaScript, puede probar la detección de propiedades CSS:

if (document.body.style.msTouchAction != undefined) {
  document.body.className = 'ie10';
}

Propiedades CSS

En su lugar msTouchAction, también puede usar una de estas propiedades CSS, ya que actualmente solo están disponibles en IE 10. Pero esto podría cambiar en el futuro.

  • msTouchAction
  • msWrapFlow
  • msWrapMargin
  • msWrapThrough
  • msScrollLimit
  • msScrollLimitXMin
  • msScrollLimitYMin
  • msScrollLimitXMax
  • msScrollLimitYMax
  • msFlexbox
  • msFlex
  • msFlexOrder

Página de prueba

He reunido una página de prueba con todas las propiedades en CodePen.

TimPietrusky
fuente
3

clipBoardData es una función que solo está disponible en IE, por lo que si busca orientar todas las versiones de IE, puede usar

<script type="text/javascript">
if (window.clipboardData)
            alert("You are using IE!");
</script>
Njaal Gjerde
fuente
-1: pero ¿qué pasa con las versiones? ¿Cómo puedes saber qué versión es?
Francisco Corrales Morales
El navegador Edge tampoco tiene "window.clipboardData"
AFD
@AFD Esta pregunta es sobre IE, no Edge.
TylerH
3

CSS para IE10 + e IE9

@media all and (-ms-high-contrast: none), (-ms-high-contrast: active) {
    /* IE10+ styles */
}

@media screen\0 {
    /* IE8,9,10 styles*/
}
svnm
fuente
1

Puede usar la detección de funciones para ver si el navegador es IE10 o superior de esta manera:

var isIE = false;
if (window.navigator.msPointerEnabled) {
    isIE = true;
}

Solo es cierto si> IE9

George Filippakos
fuente
1

Conditionizr (ver documentos) agregará clases CSS del navegador a su elemento html, incluido ie10.

Astrotim
fuente
1

Con JavaScript:

if (/Trident/g.test(navigator.userAgent)) { // detect trident engine so IE
        document.getElementsByTagName('html')[0].className= 'no-js ie'; }

Trabaja para todos los IE.

IE08 => 'Trident/4.0'

IE09 => 'Trident/5.0'

IE10 => 'Trident/6.0'

IE11 => 'Trident/7.0'

Así que cambie /Trident/gpor /Trident/x.0/gdónde x = 4, 5, 6o 7(o tal vez 8para el futuro).

Ender-events
fuente
1

Solo quería agregar mi versión de detección de IE. Se basa en un fragmento que se encuentra en http://james.padolsey.com/javascript/detect-ie-in-js-using-conditional-comments/ y se amplió para admitir también ie10 y ie11. Detecta IE 5 a 11.

Todo lo que necesita hacer es agregarlo en algún lugar y luego siempre puede verificar con una condición simple. La var global isIEno estará definida si no es un IE, o de lo contrario será el número de versión. Para que pueda agregar fácilmente cosas como if (isIE && isIE < 10)o por igual.

var isIe = (function(){
    if (!(window.ActiveXObject) && "ActiveXObject" in window) { return 11; /* IE11 */ }
    if (Function('/*@cc_on return /^10/.test(@_jscript_version) @*/')()) { return 10; /* IE10  */ }
    var undef,
        v = 3, div = document.createElement('div'), all = div.getElementsByTagName('i');
    while (
        div.innerHTML = '<!--[if gt IE ' + (++v) + ']><i></i><![endif]-->',
            all[0]
        );
    return v > 4 ? v : undef;
}());
Ene.
fuente
0

Para mí, el siguiente código funciona bien, todos los comentarios condicionales funcionan en todas las versiones de IE:

<!--[if lt IE 7 ]> <html class="ie6"> <![endif]-->
<!--[if IE 7 ]>    <html class="ie7"> <![endif]-->
<!--[if IE 8 ]>    <html class="ie8"> <![endif]-->
<!--[if IE 9 ]>    <html class="ie9"> <![endif]-->
<!--[if (gt IE 11)|!(IE)]><!--> <html> <!--<![endif]-->

<script>
    if (document.documentMode===10){
        document.documentElement.className+=' ie10';
    }
    else if (document.documentMode===11){
        document.documentElement.className+=' ie11';
    }
</script>

Estoy en Windows 8.1, no estoy seguro si está relacionado con la actualización de ie11 ...

Alex
fuente
1
El (gt IE 11)bit es completamente innecesario. También puede hacerlo en su <!--[if !(IE)]<!-->lugar.
BoltClock
BoltClock si (gt IE 11) se deja fuera, y el navegador del usuario es IE 12 (cuando sale) no habría un elemento html definido.
Leonardo Gonzalez
0

Así es como hago CSS personalizado para Internet Explorer:

En mi archivo JavaScript:

function isIE () {
      var myNav = navigator.userAgent.toLowerCase();
      return (myNav.indexOf('msie') != -1) ? parseInt(myNav.split('msie')[1]) : false;
}

jQuery(document).ready(function(){
    if(var_isIE){
            if(var_isIE == 10){
                jQuery("html").addClass("ie10");
            }
            if(var_isIE == 8){
                jQuery("html").addClass("ie8");
                // you can also call here some function to disable things that 
                //are not supported in IE, or override browser default styles.
            }
        }
    });

Y luego, en mi archivo CSS, defino cada estilo diferente:

.ie10 .some-class span{
    .......
}
.ie8 .some-class span{
    .......
}
Francisco Corrales Morales
fuente
0

use babel o mecanografiado para convertir este código js

const browser = () => {
    // "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/71.0.3576.0 Safari/537.36"
    // "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/72.0.3626.17 Safari/537.36"
    // "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/64.0.3282.140 Safari/537.36 Edge/18.17763"
    // "Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:64.0) Gecko/20100101 Firefox/64.0"
    // "Mozilla/5.0 (Windows NT 10.0; WOW64; Trident/7.0; .NET4.0C; .NET4.0E; .NET CLR 2.0.50727; .NET CLR 3.0.30729; .NET CLR 3.5.30729; rv:11.0) like Gecko"
    // "Mozilla/5.0 (compatible; MSIE 10.0; Windows NT 10.0; WOW64; Trident/7.0; .NET4.0C; .NET4.0E; .NET CLR 2.0.50727; .NET CLR 3.0.30729; .NET CLR 3.5.30729)"
    // "Mozilla/5.0 (compatible; MSIE 9.0; Windows NT 10.0; WOW64; Trident/7.0; .NET4.0C; .NET4.0E; .NET CLR 2.0.50727; .NET CLR 3.0.30729; .NET CLR 3.5.30729)"
    // "Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 10.0; WOW64; Trident/7.0; .NET4.0C; .NET4.0E; .NET CLR 2.0.50727; .NET CLR 3.0.30729; .NET CLR 3.5.30729)"
    // "Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 10.0; WOW64; Trident/7.0; .NET4.0C; .NET4.0E; .NET CLR 2.0.50727; .NET CLR 3.0.30729; .NET CLR 3.5.30729)"
    const _userAgent = navigator.userAgent;
    const br = {
        "Chrome": "Chrome",
        "Edge": "Edge",
        "Firefox": "Firefox",
        ".NET CLR": "Internet Explorer 11",
    };
    const nobr = {
        "MSIE 10.0": "Internet Explorer 10",
        "MSIE 9.0": "Internet Explorer 9",
        "MSIE 8.0": "Internet Explorer 8",
        "MSIE 7.0": "Internet Explorer 7"
    };
    let thisBrow = "Unknown";
    for (const keys in br) {
        if (br.hasOwnProperty(keys)) {
            if (_userAgent.includes(keys)) {

                thisBrow = br[keys];

                for (const key in nobr) {
                    if (_userAgent.includes(key)) {
                        thisBrow = nobr[key];
                    }
                }

            }
        }
    }

    return thisBrow;
};

Aliaksandr Shpak
fuente
Hola Aliaksandr, gracias por la idea! No estoy seguro de por qué alguien votó en contra, pero yo voté porque la respuesta es al menos una pista útil. Quien rechaza, ¿por qué no ayudar a un nuevo usuario con consejos útiles?
trusktr
-2

Esta respuesta me consiguió el 90% del camino. Encontré el resto de mi respuesta en el sitio de Microsoft aquí. .

El siguiente código es lo que estoy usando para apuntar a todos, es decir, agregando una clase .ie a <html>

Use jQuery (que desaprobó .browser en favor de los agentes de usuario en 1.9+, consulte http://api.jquery.com/jQuery.browser/ ) para agregar una clase .ie:

// ie identifier
$(document).ready(function () {
  if (navigator.appName == 'Microsoft Internet Explorer') {
    $("html").addClass("ie");
  }
});
bdanin
fuente
"que desaprobó .browser a favor de los agentes de usuario en 1.9+" No dice "a favor de los agentes de usuario" - lo que sea que eso signifique - dice a favor de la detección de funciones .
BoltClock
-2

Si no le importa la orientación de los navegadores IE10 y superiores y que no sean IE, puede usar este comentario condicional:

<!--[if gt IE 9]><!--> Your code here. <!--<![endif]-->

Derivado de http://www.paulirish.com/2008/conditional-stylesheets-vs-css-hacks-answer-neither

usuario1003757
fuente
1
No lo hice -1 su respuesta pero el vínculo parece algo outd- ocho -ed. También vale la pena señalar que OP pretendía apuntar solo a IE10 e IE10. De todos modos, su fragmento de código no funcionará para IE10 y superior o cualquier otro navegador que no sea IE, porque los comentarios condicionales solo son compatibles en IE5 hasta IE9.
WynandB
-2

Si realmente tiene que hacerlo, puede hacer que los comentarios condicionales funcionen agregando la siguiente línea a <head>:

<meta http-equiv="X-UA-Compatible" content="IE=EmulateIE9">

Fuente

nyuszika7h
fuente
-4

solución moderna para css

html[data-useragent*='MSIE 10.0'] .any {
  your-style: here;
}
Rafael
fuente