无法摆脱 Firefox 链接中的虚线轮廓?

Posted

技术标签:

【中文标题】无法摆脱 Firefox 链接中的虚线轮廓?【英文标题】:Can't get rid of dotted outline in Firefox links? 【发布时间】:2011-04-12 02:19:50 【问题描述】:

我有一个完整的列表:

<ul>
<li><a href="#"><img src="test.png" /></a</li>
<li><a href="#"><img src="test.png" /></a</li>
<li><a href="#"><img src="test.png" /></a</li>
(...)
</ul>

当我在 Firefox 中单击它们时,会出现虚线轮廓(这到底是谁发明的,为什么?太丑了!)。

我想摆脱它们,但样式“轮廓”等似乎不起作用,我尝试了以下所有选项:

#ul li img:active 
    -moz-outline-style: none;
    -moz-focus-inner-border: 0; 
    outline: none;
    outline-style: none;
     

#ul li img:focus 
    -moz-outline-style: none;
    -moz-focus-inner-border: 0; 
    outline: none;
    outline-style: none;


 #ul li img a:active 
        -moz-outline-style: none;
        -moz-focus-inner-border: 0; 
        outline: none;
        outline-style: none;
         

    #ul li img a:focus 
        -moz-outline-style: none;
        -moz-focus-inner-border: 0; 
        outline: none;
        outline-style: none;
    

【问题讨论】:

你可以在你的问题中添加你的问题的截图吗? “这到底是谁发明的,为什么?太丑了!”可访问性。因为当您使用键盘在网站上按标签时,您需要指出哪个元素是焦点。不要只是用outline: 0 删除它 - 为这些用户想一个替代方案。 @Yi Jiang,这就是主播状态的用途。一个优秀的开发人员应该使用 a:active、a:focus 和可选的 a:visited 以获得可访问性 - 它并不总是必须显示丑陋的轮廓。它也适用于制表符。哦,我很确定它在所有其他浏览器中默认关闭。 【参考方案1】:

您需要将样式应用于&lt;a&gt; 标记(后两个CSS 规则是错误的,因为您已将&lt;a&gt; 标记放在&lt;img&gt; 中。

这对我有用:

a:active,
a:focus 
  outline: none;
  -moz-outline-style: none;

或者,仅用于 ID 为 ul 的元素内部(顺便说一句,这不是最好的名称):

#ul a:active,
#ul a:focus 
  outline: none;
  -moz-outline-style: none;

【讨论】:

【参考方案2】:
a:active,
a:focus 
  outline: none;
  -moz-outline-style: none;

在 FF22 中为我工作

【讨论】:

【参考方案3】:

outline: 0 应该这样做,它应该应用于&lt;a&gt; 元素,它实际上不是&lt;img /&gt; 的子元素。 &lt;img /&gt;&lt;a&gt; 的孩子,所以你的 css 应该是:

#ul li a 
    outline: 0;

【讨论】:

以上是关于无法摆脱 Firefox 链接中的虚线轮廓?的主要内容,如果未能解决你的问题,请参考以下文章

CSS 摆脱链接上的虚线轮廓

CSS 删除Firefox中链接的虚线轮廓

无法从 Firefox 选择下拉菜单中删除轮廓/虚线边框 [重复]

无法摆脱收音机和复选框中的 Firefox 焦点显示

从 Firefox 中的范围输入元素中删除虚线轮廓

删除Firefox中的虚线轮廓