我有这样的css

*:focus-visible {
  outline: 2px solid blue; /* This value is dynamically set based on configuration */
}

我现在有一个toggle类的按钮,它有

.toggle {
  /* ... many other styles */
  outline: none;
}

outline: none是为了防止在点击按钮时显示默认的焦点轮廓.然而,我现在希望上面定义的focus-visible样式应用于它,因为focus-visible样式只在更具体的情况下应用,当焦点确实应该是可见的,而不仅仅是当按钮被单击时.

我还有点期待这样的事情能奏效:

.toggle:focus-visible {
  outline: inherit;
}

但如果我理解正确的话,inherit并不意味着它继承了父级的focus-visible样式的值.有没有办法做到这一点,而不必复制前面设置的值?换句话说,有没有办法让它"后退"?

推荐答案

当元素未聚焦时,设置轮廓的初始值(该值为无).

.toggle:not(:focus-visible) {
      outline: none;
}

Css相关问答推荐

如何将CSS Paint API与Reaction一起使用

用两步函数内插的css动画值

如何在Safari中隐藏CSS的offset-path属性?CSS支持规则不按预期工作

React Tabs 在 Tabs 之间垂直渲染标签内容

CSS Select 器 $parent > $child Select 嵌套列表中的所有
  • 子元素
  • 当前的 html 标签没有发生两列布局

    CSS Select 器在 rvest 中找到,在 RSelenium 中找不到

    使元素在顶部和中心都有粘性

    如何在变量中插入 SCSS 变量?

    在不使用 position: fixed 的情况下从 CSS 网格中的自动布局中免除子元素?

    Bootstrap 类似乎没有任何作用

    用css画3个三角形

    如何在 Angular 中使用 CSS 设置 FontAwesome 图标的大小?

    css中的背景图像没有被缓存

    在整个 DIV 周围添加 CSS 框阴影

    如何使多个 div 显示在一行中但仍保留宽度?

    CSS:将背景图像拉伸到屏幕的 100% 宽度和高度?

    如何在渲染之前获取react 组件的大小(高度/宽度)?

    最大宽度与最小宽度

    矩形图像的 CSS 圆形裁剪