如何删除超链接图像周围的轮廓?


96

当我们使用CSS使用Text Replacement并给出否定的test-indent时text-indent:-9999px。然后,当我们单击该链接时,虚线将如下图所示。有什么解决方案?

在此处输入图片说明


3
请不要删除它,它在这里是为了方便访问。


重复:stackoverflow.com/questions/1142819/… (但请参阅上面的可访问性注释!)
JohnB 2012年

我通过使用错误的搜索词来实现这一目标。我建议阅读
此书的

Answers:


167

用于删除锚标签的轮廓

a {outline : none;}

从图像链接中删除轮廓

a img {outline : none;}

从图片链接中删除边框

img {border : 0;}

1
谢谢,发现。这困扰了我很长一段时间-不仅是IE中的超链接图片,还有没有超链接的常规图片。直到我找到你的答案,这很烦人(奇怪的是,通过Google,而不是Stack)。
杰森·韦伯

25

您可以在锚元素上使用CSS属性“ outline”和值“ none”。

a {
outline: none;
}

希望能有所帮助。



9

请注意,焦点样式的存在是有原因的:如果决定删除焦点样式,则仅通过键盘导航的人不再知道焦点在哪里,因此,这会损害网站的可访问性。

(将它们保持在适当位置还可以帮助不喜欢使用鼠标的高级用户)


我们没有删除:focus样式。只是添加样式轮廓:没有。其他默认样式将在那里。
Wasim Shaikh,2009年

1
那么“其他默认样式”是什么?据我所知,虚线只有一个。
沃尔夫,

1
好的。也许我们可以为屏幕阅读器使用Diffrent样式。这可能是可访问性解决方案。
Wasim Shaikh

不仅屏幕阅读器会使用大纲,有些人还喜欢浏览使用键盘的网站。
user2019515 2013年

8

FirefoxInternet Explorer(IE)中具有相同的边框效果,当您单击某些链接时,该效果变得可见。

此代码将仅修复IE:

a:active { outline: none; }.

而这个将修复Firefox和IE

:active, :focus { outline: none; -moz-outline-style: none; }

如果您想从网站中删除链接边框,则应将最后一个代码添加到样式表中。


1
谢谢迈克,这是一个很好的答案。但使用-moz-outline-style:无;不是有效的CSS。仍然是一个不错的选择
Wasim Shaikh,2009年


3

我希望这对您中的某些人有用,它可用于从链接,图像和Flash以及MSIE 9中删除轮廓:

    a, a:hover, a:active, a:focus, a img, object, embed {
    outline: none;
    ie-dummy: expression(this.hideFocus=true); /* MSIE - Microsoft Internet Explorer 9 remove outline */
    }

下面的代码能够隐藏图像边框:

    img {
    border: 0;
    }

如果您想支持Firefox 3.6.8,但不支持Firefox 4 ...,则单击输入type = image也会产生虚线轮廓,要在旧版本的Firefox中将其删除,可以使用以下方法:

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

IE 9不允许在某些情况下删除链接周围的虚线轮廓,除非您在页面之间和页面中包含以下元标记:

     <meta http-equiv="X-UA-Compatible" content="IE=9" />

@Sparky,我相信我们应该通过回答如何在大多数使用的浏览器(包括MSIE)中做到这一点来提供答案,因为它是2014年被广泛使用的浏览器,以及有关MS meta标签和CSS的信息,可用于仅限于MSIE这只是我为包括MSIE在内的大多数浏览器提供支持的一部分答案...问题不关乎W3C有效的HTML或CSS ...
jagb

@Sparky +1是因为这是真的,我们永远不要相信MS css / html / meta标签,因为他们很少考虑W3C标准...。我并不是说使用Microsoft meta标签及其CSS代码作为仅支持MS代码的浏览器是MSIE和相关的MS浏览器。作为“我如何删除超链接图像周围的轮廓?”问题的要求答案。
jagb

我只是发表评论说我的观察。
闪亮的

但是,我想知道您是否可以引用一个声称某些情况下”需要此meta标签的消息来源;以及那些情况可能是什么。
闪亮的

请阅读Microsoft网站,以获取部分但不是全部信息。.堆栈溢出这里有很多问题,一些问题可以在右栏上此问题旁边列出。.在某些情况下,MSIE / EDGE无法在浏览器不支持的情况下显示页面内容,在某些情况下,X-UA兼容的元标记对MSIE / EDGE访问者很有用。还有更多信息,这里有一个修复程序,我希望这里对您有用
。jagb

3

这是可在Google Chrome浏览器上运行的最新版本

:link:focus, :visited:focus {outline: none;}

1

-moz-user-focus: ignore; 在基于Gecko的浏览器中(您可能需要!important,具体取决于其应用方式)


1

对HTML 4.01像这样使用

<img src="image.gif" border="0">


1

您可以overflow:hidden在属性上加上文字缩进,然后该虚线就会消失,该虚线会超出页面范围。

我看过几篇关于删除轮廓的文章。这样做时要小心,因为这可能会降低网站的可访问性。

a:active { outline: none; }

我个人只会使用此属性,因为该:hover属性具有相同的css属性,它将防止向使用键盘进行导航的人显示轮廓。

希望这能解决您的问题。



0

我敢打赌,大多数用户不是使用键盘作为导航控件的用户。那么是否可以让大多数用户厌烦一小群喜欢使用键盘导航的用户呢?简短答案-取决于您的用户是谁。

另外,我在Firefox和Safari中看不到这种体验。因此,这种说法似乎主要针对IE。这完全取决于您的用户群及其知识水平-他们如何使用该网站。

如果您确实想知道自己的位置并且是键盘用户,那么在通过该网站键入内容时,始终可以查看状态栏。


0

这完全适合我

a img {border:none;}


0

任何具有链接的图像都将在图像周围带有边框,以帮助表明它是与旧版浏览器的链接。在您的IMG HTML标签中添加border =“ 0”将防止该图片在图片周围带有边框。

但是,为每个图像添加border =“ 0”不仅会很耗时,还会增加文件大小和下载时间。如果您不希望任何图像带有边框,请创建一个包含以下代码的CSS规则或CSS文件。

img {边框样式:无;}



-1

我不确定这是否仍然是这个人的问题,但我知道这通常会使许多人感到痛苦。诚然,上述解决方案将在工作的一些情况,但如果你是,例如,使用一个CMS像WordPress,并正在通过任何插件或者主题产生的轮廓,你很可能不会有这个问题解决了,这取决于您如何添加CSS。

我建议您使用一个单独的StyleSheet(例如,使用“ Lazyest StyleSheet ”插件),并在其中输入以下CSS来覆盖现有的插件(或主题)强制样式:

a:hover,a:active,a:link {
    outline: 0 !important;
    text-decoration: none !important;
}

在特定规则中添加“ !important ”将使其优先生成,即使该规则可能位于其他位置(无论它是否在插件,主题等中)。

这有助于节省开发时间。当然,您可以挖掘原始资源,但是当您正在处理许多项目时,或者需要执行更新(可以覆盖您的更改[ 不建议! ]或添加新的插件或主题)时,这是最好的选择节省时间。

希望这对您有帮助...和平!


-9

是的,我们可以使用。CSS复位的a {outline:none},也


a:focus, a:active {outline:none} 有关重置CSS的最佳做法,最佳解决方案是使用常用方法。:focus{outline:none}如果您仍然有最佳选择,请共享


20
不接受其他答案之一,这会导致您得出结论,这有点不礼貌吗?
Pekka 2010年
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.