que pseudo etiqueta ejemplos before after css3 internet-explorer-10 conditional-statements

css3 - pseudo - Extracción de la flecha Elemento de selección IE10



pseudo class before css (5)

¡Pero !, si queremos agregar ancho, no podemos hacerlo como:

display:none

Asi que

select::-ms-expand { /* IE 8 */ -ms-filter: "progid:DXImageTransform.Microsoft.Alpha(Opacity=0)"; /* IE 5-7 */ filter: alpha(opacity=0); /* Good browsers :) */ opacity:0; }

Entonces, con Mozilla y WebKit tengo una solución medio decente que reemplaza la flecha en el cuadro de select usando appearance: none; y tener un elemento padre.

En IE, en su mayor parte, desactivé esta función. Para IE10 no puedo desactivarlo porque mis comentarios condicionales no funcionan.

Aquí está mi marcado:

<!--[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 9)]> <html class="ie10plus"> <![endif]--> <!--[if !(IE)]><!--> <html> <!--<![endif]-->

La clase ie10plus realidad no llega al marcado.

También siento que podría haber una manera legítima de reemplazar la flecha en IE. No me opongo a solucionar el problema. appearance: none; sin embargo, no funciona. Entonces, ¿qué puedo hacer aquí?


Evite el rastreo del navegador y los comentarios condicionales (que no son compatibles a partir de Internet Explorer 10) y, en cambio, adopte un enfoque más estándar. Con este problema en particular, debe apuntar al pseudo elemento ::-ms-expand :

select::-ms-expand { display: none; }


Todavía no estoy seguro de lo que está tratando de lograr, pero esto detectará y agregará una clase para ie10:
<!--[if !IE]><!--<script> if (/*@cc_on!@*/false) { document.documentElement.className+='' ie10plus''; } </script>!--<![endif]-->


Tuve un problema con una flecha desplegable oculta en el sitio en IE 10 y 11 que estoy trabajando y que usa la Fundación Zurb . Había una línea en _form.scss que tenía

select::-ms-expand { display: none; }

Lo eliminé y la flecha desplegable comenzó a mostrarse normalmente en todos los broswers. Gracias Jonathan por tu respuesta aquí. Esto me ayudó después de buscar mucho para encontrar una solución.


Internet Explorer 10 no admite comentarios condicionales , por lo que tendrá que hacer algo más. Una solución es olfatear el agente de usuario con JavaScript y agregar la clase usted mismo:

<script> if (navigator.userAgent.indexOf("MSIE 10.0") !== -1) { document.documentElement.className += " ie10"; } </script>

Probablemente deberías agregar esto en <head> para que no tengas un flash de contenido sin estilo, pero eso podría no ser un problema.

Además, si está utilizando jQuery, es posible que desee hacer algo como esto:

if (navigator.userAgent.indexOf("MSIE 10.0") !== -1) { $("html").addClass("ie10"); }

Si desea comprobar si hay IE10 o superior, copie y pegue la función getInternetExplorerVersion desde esta página de Microsoft y luego cambie if algo así:

if (getInternetExplorerVersion() >= 10) { // whatever implementation you choose }