从FF中的select框中删除轮廓

是否可以删除select元素中选定项目周围的虚线?

替代文字

我试图在CSS中添加outline属性,但它不起作用,至less不是在FF中。

 <style> select { outline:none; } </style> 

更新
在你继续之前,删除大纲,请阅读。
http://www.outlinenone.com/

我find了一个解决scheme,但它是所有黑客的母亲,希望它可以作为其他更强大的解决scheme的起点。 不利的一面(我认为太大)是,任何不支持text-shadow但支持rgba (IE 9)的浏览器将不会呈现文本,除非您使用Modernizr这样的库(没有经过testing,只是一个理论) 。

Firefox使用文本颜色来确定虚线边框的颜色。 所以说,如果你这样做…

 select { color: rgba(0,0,0,0); } 

Firefox将渲染虚线边框透明。 但是当然你的文字也是透明的! 所以我们必须以某种方式显示文本。 text-shadow来拯救:

 select { color: rgba(0,0,0,0); text-shadow: 0 0 0 #000; } 

我们把一个没有偏移和模糊的文字阴影,以取代文字。 当然,旧的浏览器并不了解这一点,所以我们必须提供颜色的回退:

 select { color: #000; color: rgba(0,0,0,0); text-shadow: 0 0 0 #000; } 

这是当IE9发挥作用:它支持rgba而不是文字阴影,所以你会得到一个显然是空的select框。 让您的Modernizr版本与text-shadow检测和做…

 .no-textshadow select { color: #000; } 

请享用。

那么, Duopixel的答案显然是完美的。 如果我们更进一步,我们可以做到防弹。

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

你去那里,只适用于Firefox和围绕选定的选项丑陋的虚线轮廓了。

这是一个解决scheme的合作,以解决Firefoxselect框的样式问题。 使用这个CSSselect器作为您通常的CSS重置的一部分。

类删除大纲作为每个问题,但也删除任何背景图像(因为我通常使用自定义下拉箭头和Firefoxes系统下拉箭头目前不能被删除)。 如果使用背景图像除了下拉图像,只需删除线条background-image: none !important;

 @-moz-document url-prefix() { select, select:-moz-focusring, select::-moz-focus-inner { color: transparent !important; text-shadow: 0 0 0 #000 !important; background-image: none !important; border:0; } } 

一般情况下,表单控件不可能按照这种精度进行devise。 我没有意识到,在所有控件中都支持一个合理的属性范围。 这就是为什么有一个巨大的JavaScript库,用图像和其他HTML元素“伪造”窗体控件,并用代码模拟它们的原始function:

http://ryanfait.com/resources/custom-checkboxes-and-radio-buttons/

<select onchange="this.blur();">

如果你使用这个边框,直到你从列表中select一个项目。

这将针对所有的Firefox版本

 @-moz-document url-prefix() { select { color: transparent !important; text-shadow: 0 0 0 #000 !important; } } 

如果您打算在使用相同样式表的网站上的其他网页上显示大纲,则可能需要删除!important。

尝试其中之一:

 a:active { outline: none; -moz-outline: none; } a { -moz-user-focus: none; } 

参考

解决scheme来了

 :focus {outline:none;} ::-moz-focus-inner {border:0;} 
  input[type='range']::-moz-focus-outer { border: 0; outline: none !important; } 

工作100%