美文网首页
从边框消失问题探究 CSS 轮廓线

从边框消失问题探究 CSS 轮廓线

作者: HoPGoldy | 来源:发表于2021-03-30 14:24 被阅读0次

最近在支援其他项目的时候遇到了一个 css 问题,这里记录一下。

这个项目还是使用 jsp 开发的,问题出现在一个使用了 select2 的下拉框上,具体表现是失去焦点时部分边框消失,然后点击任意其他区域后轮廓出现,如下图:

非常的魔幻,一开始以为是样式修改导致 border 属性被覆盖了,但是检查了半天之后发现并没有修改,而且由于随便点一下就能让这个问题消失,所以检查起来非常麻烦。下面直接上解决方法。

.select2-container .select2-selection--single 类中添加如下属性即可

outline: none;

问题溯源

在了解问题是怎么出现之前,我们先来了解一下什么是 轮廓线(outline),我们熟知的 css 盒子模型的结构是这样的,从内到外分别是 content > padding > border > margin:

但是实际上,在 border 和 margin 之间还有一层叫做 “轮廓线” 的区域,它可以凸显元素,一般用来表示某个元素获取了焦点。例如点击 tab 或选中某个表单控件时周围亮起的样式就是轮廓线。

那它为什么不显示在 dev tool 中呢?实际上,轮廓线只有可以用于交互的元素上才有,例如链接、刚才提到的表单控件等等。并且,由于轮廓线只有视觉效果,并不占有实际空间,所以轮廓线不会引发浏览器的重排。

轮廓线的属性和 border 的很像,outlineoutline-widthoutline-styleoutline-coloroutline-offset。其中 outline 就是 color | style | width 的简写,这里不再赘述。

而我们刚开始遇到的问题其实就是轮廓线导致的,可以看到元素获得焦点后问题出现,而失去焦点(点击其他区域)后问题就消失了。至于 outline 为什么会这样并没找到原因,我估摸着是这个老项目的其他位置有一个 !importantoutline-color 导致样式被覆盖了,有点恶心,懒得找了。

参考

相关文章

  • 从边框消失问题探究 CSS 轮廓线

    最近在支援其他项目的时候遇到了一个 css 问题,这里记录一下。 这个项目还是使用 jsp 开发的,问题出现在一个...

  • CSS(button按钮点击样式)

    按钮的点击时出现黑色边框的问题 添加css属性 按钮的点击后出现蓝色边框的问题 添加css属性

  • HTML+CSS+JavaScript知识点整理2

    CSS选择器 CSS注释 CSS列表属性 CSS边框属性:每个元素都可以加边框线 CSS内边距属性:边框线到内容间...

  • CSS cursor outline resize

    鼠标样式 cursor 轮廓线 outline 如下所示,选中会有一个蓝色的边框,如何取消轮廓线 防止拖拽文本域 ...

  • CSS边框、图片alt、input标签placeholder、f

    CSS边框属性CSS 边框的属性有style(样式)、color(颜色)、width(宽度)、height(高度)...

  • 关于CSS3 新特性

    一、CSS3 边框 在 css3 中新增的边框属性如下: 创建圆角边框 示例 在CSS2中添加圆角很棘手,我们不得...

  • css3学习 第一天

    CSS3边框 CSS3 边框 用 CSS3,你可以创建圆角边框,添加阴影框,并作为边界的形象而不使用设计程序,如 ...

  • CSS中margin和padding的区别

    在CSS中margin是指从自身边框到另一个容器边框之间的距离,就是容器外距离。在CSS中padding是指自身边...

  • css之border

    css边框属性 通过css3,能够创建圆角边框,向矩形添加阴影,使用图片来绘制边框 border-radius b...

  • CSS盒子模型、定位、浮动

    CSS盒子模型概述 CSS内边距 CSS边框: CSS外边距 CSS定位: CSS浮动:

网友评论

      本文标题:从边框消失问题探究 CSS 轮廓线

      本文链接:https://www.haomeiwen.com/subject/pxvwhltx.html