如何在IE和Opera中修改SELECT标签的默认突出显示行为?

这是我的HTML:

 Select One Two  

请参阅此代码的实际操作

在IE和Opera中,当您选择一个选项时,它会以蓝色背景颜色突出显示。 Firefox,Chrome和Safari不会这样做。 选择该选项时是否有一种方法或技巧可以删除该蓝色突出显示,以便始终显示原始背景颜色?

如果那是不可能的,有没有办法在选择选项后立即添加模拟页面上其他位置的单击的jQuery行为? 因此,基本上当您单击远离所选选项时,突出显示消失。

我想我找到了解决方案。 也许这不是一个非常干净的解决方

我已经在Firefox,Chrome,Safari,Opera和IE 9中测试了它。适用于所有这些,但不适用于旧版本的IE(6和7)。 尚未在IE8中测试过。 如果有人可以在Mac上测试它并让我知道这是否有效,那就太好了。

我添加了一个宽度和高度为0的输入字段,并在单击选项时将焦点移动到它。 使用display:none和visibility:隐藏在输入字段中不起作用。 因此,您将在角落的某处隐藏输入字段,或者使用z-index将其移动到容器后面也可以工作(但是没有尝试过)。 如果有人有更好的解决方案,请告诉我。

HTML:

  ` ` 

jQuery的:

 $(document).ready(function(){ $('select option').on('click', function() { $('#abc').focus(); }); }); 

在小提琴看到这个

在IE11中(不确定以前的版本),您可以从焦点选择元素中删除蓝色背景

 select::-ms-value {background: none;} 

这是一个dabblet演示

这不能真正完成,因为它是默认的浏览器行为。 您最好的选择可能是替换具有类似function的选择框,例如jQuery Chosen插件。