移除 HTML 元素的蓝色轮廓

Posted

技术标签:

【中文标题】移除 HTML 元素的蓝色轮廓【英文标题】:Remove the blue outline of HTML elements 【发布时间】:2020-09-26 21:24:18 【问题描述】:

我创建了一个虚线导航,我注意到当我在 iPad 上单击任何 li 时,会显示两个蓝色轮廓框;单击笔记本电脑时,它们不显示。

我不认为这是 focus 状态,因为我尝试过 a:focus: outline: none ,它们仍然出现。无论如何要删除这两个丑陋的盒子吗?如果是这样,那会降低可访问性吗?另一种题外话的问题是,当我在我的网站上切换时,导航被完全跳过,知道为什么吗?谢谢!

蓝色框不会显示在 fiddle 上。所以 IDK 如果这会有所帮助...但是如果您发现任何不良做法,请指出,谢谢!

HTML

<nav class="nav"> 
    <ul class="nav-items"> 
        <li>
            <a href="#intro">
                <span class="dot"></span>
            </a>
            <span class="dot-label">Intro</span>
        </li>

        <li>
            <a href="#about">
                <span class="dot"></span>
            </a>
            <span class="dot-label">About</span>
        </li>
    </ul>
</nav>

CSS(部分)

.nav 
  position: fixed;


.nav-items a 
  cursor: pointer;
  max-width: 30px;
  order: 2;


.dot 
  position: relative;
  height: 10px;
  width: 10px;
  transition: transform 0.2s, background-color 0.5s;
  transform-origin: 50% 50%;
  display: inline-block;
  z-index: 150;


.dot-label 
  position: relative;
  display: none;
  opacity: 0;
  transition: transform 0.2s, opacity 0.2s;
  transform-origin: 100% 50%;
  order: 1;
  user-select: none;


.nav-items a:hover .dot 
  transform: scale(1.5);


.nav-items a:hover + span.dot-label 
  display: block;
  opacity: 1;

【问题讨论】:

也许它将项目符号解释为文本,如 unicode 字符,然后点击该区域来选择它。你试过nav li user-select: none;吗? 是的,我试过了,还是一样。 【参考方案1】:

outlinebox-shadow

nav li a, nav li 
    outline: none !important;
    box-shadow: none;

在这方面,它更令人讨厌,因此最好将其删除。它不会影响可访问性/用户友好性,因为它已经很丑陋了。它的目标显然是让用户清楚什么是“活跃的”

【讨论】:

感谢您的评论。我在“.nav-items a”上尝试了“outline:none!important”和“box-shadow:none”,但它们都不起作用。 你能做个小提琴吗? 好的,请稍等。

以上是关于移除 HTML 元素的蓝色轮廓的主要内容,如果未能解决你的问题,请参考以下文章

引导按钮单击时显示蓝色轮廓

移除焦点轮廓 TideSDK

聚焦时如何从单选框中删除蓝色轮廓?

从 uitabbaritem 图像中删除蓝色轮廓

css 删除按钮上的蓝色“选定”轮廓

移除FF按钮:焦点轮廓