27

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

在此处输入图像描述

但是,在Firefox中,它有不需要的虚线

在此处输入图像描述

我已经使用这些 CSS 语句成功删除了按钮输入元素不需要的 Firefox 虚线:

button::-moz-focus-inner { border: 0; }
input::-moz-focus-inner { border: 0; }

所以我认为这些适用于选择/选项元素,但它们不会:

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; }
4

5 回答 5

9

James Broad 的答案几乎是完美的,但选项项目的“仅阴影”文本看起来很难看。这对我来说非常有效:

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;
}
于 2014-12-16T17:34:28.783 回答
5

这是为此的组合黑客:

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();
});
于 2011-02-06T14:10:25.710 回答
4

https://stackoverflow.com/a/18853002/728855上找到的解决方案似乎运行良好。

简而言之:

select:-moz-focusring {
    color: transparent;
    text-shadow: 0 0 0 #000;
}

#000 是您的文本颜色。

于 2014-06-24T11:34:37.560 回答
0

在使用 with 的情况下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);
  }
}
于 2020-01-13T00:06:48.893 回答
-5

尝试将outline: 0,作品用于按钮

于 2011-02-06T12:58:48.113 回答