在 Chrome 和其他浏览器中,我的下拉列表看起来很好:
但是,在 Firefox 中,它包含不需要的点缀行:
我已使用这些CSS语句成功删除了按钮和输入元素中不需要的Firefox虚线:
button::-moz-focus-inner { border: 0; }
input::-moz-focus-inner { border: 0; }
所以我认为这些适用于select / option元素,但它们不适用:
select::-moz-focus-inner { border: 0; }
option::-moz-focus-inner { border: 0; }
如何删除此下拉列表中的虚线,以便在Chrome和其他浏览器中显示?
这些也不起作用:
select::-moz-focus-inner { border: 0; outline: 0 }
option::-moz-focus-inner { border: 0; outline: 0 }
也不是这些:
select { outline: 0; }
option { outline: 0; }
也不是这些:
select { outline: none; }
option { outline: none; }
答案 0 :(得分:8)
詹姆斯布罗德的回答几乎是完美的,但仅仅是影子"选项的文字看起来很难看。这对我来说非常有用:
select:-moz-focusring {
color:transparent;
text-shadow:0 0 0 #000; /* your normal text color here */
}
select:-moz-focusring * {
color:#000; /* your normal text color here */
text-shadow:none;
}
答案 1 :(得分:4)
这是合并的黑客:
select:focus {
outline: 1px solid white;
outline-offset: -2px;
}
select ~ input[type=button] {
-moz-appearance: menulist-button;
margin-left: -19px;
width: 18px;
height: 18px;
z-index: 10;
}
然后在每次选择后使用tabindex = 0添加输入 还有一些代码专注于“授权”:
$("select ~ input[type=button]").addEvent('focus', function(){
this.getPrevious().focus();
});
答案 2 :(得分:3)
在https://stackoverflow.com/a/18853002/728855上找到的解决方案似乎完美无缺。
简而言之:
select:-moz-focusring {
color: transparent;
text-shadow: 0 0 0 #000;
}
#000是你的文字颜色。
答案 3 :(得分:0)
如果与required
一起使用,例如以下代码:
<select required="true">
<option value="" selected="true" disabled="true" hidden="true">Select a Option</option>
<option value="">Option</option>
</select>
您将需要为select:required:invalid
设置相同的参数,如下所示:
select {
&:required {
&:invalid {
color: transparent;
text-shadow: 0 0 0 rgba(0, 0, 0, .4);
}
}
&:-moz-focusring {
color: transparent;
text-shadow: 0 0 0 rgba(0, 0, 0, .4);
}
}
答案 4 :(得分:-5)
尝试使用outline: 0,
适用于按钮