这个hack曾经在Firefox 29及以下版本中有效,用于移除
我通过单独为div和select设置样式来解决了这个问题。
任何人都可以根据需要更改宽度和其他样式属性。 :)
这是它的js fiddle链接。 JSFIDDLE
<div class="common-dropdown-small-div" style="width: 220px">
<select id="select" class="common-dropdown-project-select">
<option>
apple
</option>
<option>
blackberry
</option>
<option>
pumpkin
</option>
</select>
.common-dropdown-small-div{
border: 1px solid rgb(208, 208, 208);
overflow: hidden;
width: 220px; }
.common-dropdown-project-select{
width: 100% !important;
background-image: url("http://upload.wikimedia.org/wikipedia/en/f/f1/Down_Arrow_Icon.png");
background-position: 97% 60%, 0 0 ! important;
background-repeat: no-repeat;
background-size: 25px 16px;
border: none ! important;
outline : medium none !important;
display: inline-flex !important;
height: 33px !important;
vertical-align: top;
-webkit-appearance: none; }
select::-ms-expand {
display: none;}
overflow: hidden;
属性,使选择器比容器更宽。如果需要边框,请将其添加到容器中。.yourClass:after {
position: absolute;
margin-left: -25px;
border-radius: 4px;
content: url('../images/pathToYourDownArrowImage.svg');
pointer-events: none;
overflow: hidden;
}
/* 我仍然使用这个来移动文本 */
.yourClass select {
text-overflow: '';
text-indent: -1px;
-moz-appearance: none;
background: none;
}
}
Firefox > 29 -moz-appearance:none; 可以正常工作,但是宽度存在问题,我们将选择框的宽度从100%扩展到110%以进行隐藏,但这会影响表单的设计,所以我只是用一个div来隐藏它并解决了这个问题。
请查看Codepen版本。
正如@mircea c所暗示的那样...
如果你的HTML看起来像这样:
<div class="styled-select">
<select>
<option>Here is the first option</option>
<option>The second option</option>
<option>The thrid option</option>
</select>
</div>
然后您可以在Firefox 30+中删除下拉箭头
.styled-select {
overflow: hidden;
width: 200px;
}
@-moz-document url-prefix(){
.styled-select select { width: 110%; }
}
工作演示:codepen
须知:相同的技术也适用于IE 8和9,只需使用条件注释代替@-moz-document url-prefix()
appearance:none;
而不加上 moz 前缀怎么样? - Pete