当一个html元素被“聚焦”(当前选中/选中)时,许多浏览器(至少是Safari和Chrome)会在它周围放置一个蓝色边框 .
对于我正在进行的布局,这会分散注意力并且看起来不正确 .
<input type="text" name="user" class="middle" id="user" tabindex="1" />
FireFox似乎没有这样做,或者至少,让我控制它
border: x;
如果有人能告诉我IE的表现如何,我会很好奇 .
但让Safari移除这一点点耀斑会很不错 .
14 回答
在您的情况下,尝试:
或者一般来说,要影响所有基本表单元素:
在评论中,Noah Whitmore建议进一步支持将
contenteditable
属性设置为true
的元素(有效地使它们成为输入元素的类型) . 以下内容也应针对那些(在支持CSS3的浏览器中):虽然我不会这样做,但你可以随时禁用 everything 上的焦点轮廓:
请记住,焦点大纲是可访问性和可用性功能;它告诉用户当前关注的元素 .
从所有输入中删除它
这是一个旧线程,但是为了参考,重要的是要注意禁止禁用输入元素的轮廓,因为它阻碍了可访问性 .
outline属性有一个原因 - 为用户提供键盘焦点的清晰指示 . 有关此主题的进一步阅读和其他来源,请参阅http://outlinenone.com/
这是一个普遍关注的问题 .
浏览器呈现的默认outline是丑陋的 .
看到这个例子:
最常见的"fix"最推荐的是
outline:none
- 如果使用不正确 - 是可访问性的灾难 .那么......大纲的用途是什么?
有一个very dry-cut website我发现它解释了一切 .
好的,让我们尝试与上面相同的例子,现在使用
TAB
键进行导航 .请注意如何在不单击输入的情况下确定焦点的位置?
现在,让我们在我们可靠的
<input>
上试试outline:none
因此,再次使用
TAB
键在单击文本后进行导航,看看会发生什么 .看看如何找出焦点在哪里更难?唯一明显的标志是光标闪烁 . 我上面的例子过于简单化了 . 在实际情况中,页面上不会只有一个元素 . 更像是这样的东西 .
如果我们保留大纲,现在将其与同一模板进行比较:
所以我们 Build 了以下内容
轮廓很难看
删除它们会让生活变得更加困难 .
那么答案是什么?
Remove the ugly outline and add your own visual cues to indicate focus.
这是我的意思的一个非常简单的例子 .
我删除了轮廓并在:focus和:active上添加了一个底部边框 . 我还通过在:focus和:active(个人喜好)上将它们设置为透明来删除顶部,左侧和右侧的默认边框
因此,我们使用前面的“真实世界”示例尝试上述方法:
这可以通过使用基于修改"outline"的想法的外部库进一步扩展,而不是像Materialize那样完全删除它 .
你可以得到一些不丑的东西,并且只需要很少的努力
使用此代码:
您可以使用CSS来禁用它!这是我用来禁用蓝色边框的代码:
这将删除蓝色边框!
这是一个有效的例子:JSfiddle.net
希望能帮助到你!
删除所有焦点样式通常对可访问性和键盘用户不利 . 但轮廓很难看,为每一个互动元素提供定制的焦点风格可能是一个真正的痛苦 .
因此,我发现的最佳折衷方案是仅在我们检测到用户正在使用键盘进行导航时才显示轮廓样式 . 基本上,如果用户按下TAB,我们会显示轮廓,如果他使用鼠标,我们会隐藏它们 .
它不会阻止您为某些元素编写自定义焦点样式,但至少它提供了一个很好的默认值 .
我是这样做的:
你也可以尝试一下
要么
这让我困惑了一段时间,直到我发现这条线既不是边界也不是轮廓,它是一个影子 . 所以要删除它我必须使用这个:
使用下面的CSS属性,当焦点在元素上时删除轮廓:
这个CSS属性删除了焦点上所有输入字段的轮廓或使用伪类来使用CSS属性下方删除元素的轮廓 .
此属性删除所选元素的轮廓 .
您可以使用以下方法删除文本/输入框周围的橙色或蓝色边框(轮廓): outline:none
我尝试了所有的答案,我仍然无法让我的工作 Mobile ,直到我找到
-webkit-tap-highlight-color
.那么,对我有用的是......
试试这个吧
在Firefox中,没有一个解决方案适合我 .
以下解决方案更改了Firefox的焦点边框样式,并为其他浏览器将大纲设置为none .
我已经有效地使焦点边框从3px蓝色光晕变为与文本区域边界匹配的边框样式 . 这是一些边框样式:
虚线边框(边框2px红色虚线):
无边界! (border 0px):
Textarea边界(边框1px纯灰色):
这是代码: