删除IE10select元素箭头

所以,在Mozilla和WebKit中,我使用appearance: none;replaceselect框上的箭头appearance: none; 并有一个父元素。

在IE中,大部分我禁用了这个function。 对于IE10我实际上禁用它,因为我的条件注释实际上不工作。

这是我的标记:

 <!--[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]--> 

ie10plusie10plus并没有达到标记。

我也觉得有可能有​​一个合法的方式来取代IE中的箭头。 我并不反对真正解决这个问题。 appearance: none; 然而不起作用。 那么我能在这里做什么?

避免使用浏览器嗅探和条件注释(从Internet Explorer 10开始不支持),而是采取更加标准的方法。 有了这个特定的问题,你应该瞄准::-ms-expand伪元素:

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

但是!如果我们想增加宽度,我们不能这样做:

display:none

所以

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

Internet Explorer 10不支持条件注释 ,因此您必须执行其他操作。 一个解决scheme是用JavaScript嗅探用户代理,并自己添加类:

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

你可能应该在<head>添加这个,这样你就没有一个没有风格的内容了,但这可能不是问题。

另外,如果你使用jQuery,你可能想要做这样的事情:

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

如果你想检查IE10或以上版本, 从这个微软页面复制粘贴getInternetExplorerVersion函数,然后更改if是这样的:

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

我在使用Zurb基金会的 IE 10和11上的网站上隐藏的下拉箭头有问题。 在_form.scss上有一行

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

删除它,下拉箭头开始正常显示在所有的交叉。 谢谢你乔纳森在这里的答案。 这帮我search了很多的解决scheme。

仍然不确定你想要完成什么,但是这将检测并添加一个类为ie10:
<!--[if !IE]><!--<script> if (/*@cc_on!@*/false) { document.documentElement.className+=' ie10plus'; } </script>!--<![endif]-->