在IE中自定义选择

时间:2014-11-06 12:51:23

标签: html css internet-explorer select

我在Internet Explorer中遇到自定义选择问题。当我单击选择时,选项区域外观非常糟糕。在chrome或firefox中它运行良好。

以下是我的示例http://jsfiddle.net/kxytwo0e/1/。如果您使用IE打开它并选择最后一个选项,则再次单击选择然后您将看到问题。

这是我的HTML代码:

<div class="custom-select">
    <select>
        <option>Here is the first option</option>
        <option>The second option</option>
        <option>The 3 option</option>
        <option>The 4 option</option>
    </select>
</div>

这是我的css代码:

    /*custom-select start*/

.custom-select {             
    padding: 0;
    position: relative; 
    height: 36px; 
    width: 100%; 
    z-index: 1;
    /*margin-left: 2px;*/         
}

.custom-select:hover { border-color: #999; }
.custom-select:before {
    background: url("../img/arrow-down.jpg") no-repeat right center;
    // color: #333;
    content: ""; 
    height: 100%; 
    padding:  0 0  0 20px;
    position: absolute;
    top: 0; 
    right: 20px; 
    z-index: -1;
}

@-moz-document url-prefix() {
    .custom-select:before {
        height: 34px;
        right: 0px;
    }
} 

.custom-select select {
    background-color: transparent;
    border: 1px solid #b9b9b9;
    /*color: #555;*/
    height: 100%;
    width: 100%; 
    -webkit-appearance: none;
    -moz-appearance: none;
    appearance: none;
} 

.custom-select select::-ms-expand { display: none;}
.custom-select select:focus { outline: none; }
.custom-select select option{
    padding: 2px;
}

:-moz-any(.custom-select):before {
    background-color: #fff;
    pointer-events: none;
    z-index: 1; 
    margin-top: 1px;
    margin-right: 1px;
    border-radius: 3px;
 }
/*custom-select end*/

谢谢。

编辑:我意识到downvote是有效的,因为我没有说明我的期望和我得到的东西。在Chrome和FireFox中,选项区域显示在选择区域下方,但在IE中,选项区域显示在选择区域上方。我想显示选项正好在选择之下。这有可能实现吗?

1 个答案:

答案 0 :(得分:0)

我找到了一个很好的解决方案:

这是链接:http://jsfiddle.net/fnagel/GXtpC/light/

这也适用于chrome,firefox和IE。

这是html代码:

<select name="speedC" id="speedC">
        <option value="Slower" class="whoo">Slower</option>
        <option value="Slow">Slow</option>
        <option value="Medium" selected="selected">Medium</option>
        <option value="Fast">Fast</option>
        <option value="Faster">Faster</option>
    </select>`

你也必须输入css和js代码。

不要忘记将这些添加到您的项目中:

jquery.ui.core.css

jquery.ui.theme.css

jquery.ui.selectmenu.css

jquery.ui.core.js

jquery.ui.widget.js

jquery.ui.position.js

jquery.ui.selectmenu.js