20

当关注下拉菜单时,我想从 IE 更改蓝色背景颜色,但我似乎找不到任何 CSS 来执行此操作。

<select id=focusSelect><option>Option</option></select>

JS:

document.getElementById("focusSelect").focus();

CSS:

select:focus{
    background-color: red;
}

http://jsfiddle.net/TafDD/3/

特别是当下拉菜单未打开时。样式化选项不是问题。

我也找不到任何关于这是否可行的明确答案。

在此处输入图像描述

设置option背景颜色也不会清除蓝色。

option {
    background-color: green;
}

http://jsfiddle.net/srycroft/yE2Zg/

4

4 回答 4

57

在 Internet Explorer 11/Edge(不确定以前的版本)中,您可以这样做:

select:focus::-ms-value {
    color: black; 
    background: red;
}

您还应该指定字体颜色,因为它默认为白色(最初与蓝色形成对比),因此您也需要覆盖它。

这是一个 dabblet 演示

于 2014-04-05T02:25:54.723 回答
6

欣赏这是一个古老的问题,但为了防止 IE 中选择下拉列表中选定选项的蓝色背景,请使用上面 WillRice 提到的 MS 伪元素 -ms-value。重要的是,尽管您还需要为文本设置颜色 css 属性,因为这将默认为白色。

select::-ms-value {
    background: none; /* remove blue background on ie10/ie11 when selected*/
    color:#000;
}

更多信息在这里

于 2015-07-28T09:08:49.193 回答
2

我正在使用下面的 CSS,它可以在最新的 IE11、Edge、Firefox 和 Chrome 中运行(我还没有在早期的浏览器中测试过它)。如果您不需要它们,只需删除边框半径和填充。感谢 willrice 的贡献:

select {
  -webkit-appearance: none;
  -moz-appearance: none;
  -webkit-border-radius: 5px;
  -moz-border-radius: 5px;
  border-radius: 5px;
  padding: 5px;
}

select:focus::-ms-value {
  background: white;
  color: black;
}

select::-ms-expand {
  display: none;
  -webkit-border-radius: 5px;
  -moz-border-radius: 5px;
  border-radius: 5px;
  padding: 5px;
}
于 2016-02-18T12:32:29.590 回答
-3

我一直在摆弄 css 和 javascript,并在互联网上搜索以找到解决方案。不幸的是,似乎无法更改 IE 的蓝色突出显示本身。在下面的示例中,我使用了 CSS 和 JS 的组合来实现与http://jsfiddle.net/TafDD/3/中几乎相同的结果。看看它。

一个例子值一千字:( 在IE7中测试)

<!DOCTYPE html>
<html>
<head>
    <title>CSS Form Select Focus Color Change Test Page</title>
    <style type="text/css">
        /* Set the desired background color for the whole select element */
        form select {
            background-color: #fff;
        }

        form select option {
            background: transparent;
        }

        /* Set the desired color for the focus state */
        select:focus, select.focus {
            background-color: #f00;
            outline: none;
        }
    </style>
</head>
<body>

    <form action="" method="POST">
        <div id="selectWrap">
            <select id="focusSelect" name="test_select">
                <option value="1">Option 1</option>
                <option value="2">Option 2</option>
                <option value="3">Option 3</option>
            </select>
        </div>
    </form>

    <!--[if lt IE 9]><script>
        // NOTE: This is a pure JavaScript variant. 
        // You could also use something like jQuery.

        var selectBox = document.getElementById('focusSelect');

        // This will add the .focus class to the select 
        // giving it the defined background color
        selectBox.onfocusin = function() {
            this.className = 'focus';
        };

        // and this will restore the original background 
        // color by removing the .focus class
        selectBox.onfocusout = function() {
            this.className = '';
        };

        // This removes the blue highlight after an option is selected
        selectBox.onchange = function() {
            this.blur();
        };
    </script><![endif]-->

</body>
</html>


我希望这可以帮助你。

我还建议你看看:

…以及 40 种技术的概述:

这些网站将为您提供有关如何使用 css 和/或 javascript 进一步设置选择样式的信息。

祝阅读愉快,编码愉快!

于 2013-07-10T21:39:12.843 回答