删除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]-->
ie10plus
类ie10plus
并没有达到标记。
我也觉得有可能有一个合法的方式来取代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]-->