如何删除Firefox中SELECT / OPTION下拉控件上的虚线?

时间:2011-02-06 12:53:43

标签: firefox dotted-line

Chrome 和其他浏览器中,我的下拉列表看起来很好

enter image description here

但是,在 Firefox 中,它包含不需要的点缀行:

enter image description here

我已使用这些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; }

5 个答案:

答案 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,适用于按钮