请教前端大佬,这是浏览器的 bug 还是 CSS 有问题?

287 天前
 Caturra
在看 wordpress 的主题,打算做些参考

https://wp-themes.com/twentyseventeen/?p=36

我发现这个 demo 的链接高亮会有诡异的现象,会残留多一条下划线
(偶现,多找几个链接用鼠标划一下应该能复现)

https://imgur.com/a/K83yF9G

但这个 bug 是在 edge 或者其它 chrome 系浏览器才存在的,firefox 就没这个问题
这种 bug 该怎么修复或者规避?不懂前端,求指教
912 次点击
所在节点    问与答
10 条回复
shuxhan
287 天前
感觉是高分屏下浏览器的问题,我用 2k 缩放 200%可以看到残留的线,再点击下空白消失,估计是 chrome bug ?
lneoi
287 天前
-webkit-box-shadow: inset 0 -1px 0 rgb(15 15 15);
box-shadow: inset 0 -1px 0 rgb(15 15 15);
这个样式取消掉就不会产生了,看起来就是为了搞链接可点击的提示效果
lneoi
287 天前
哦 看了图片 是底下还有一横 在目前用的浏览器倒是复现不出来 会不会是 hover 效果后残留的
awanabe
287 天前
chrome 系列一直有一个问题就是对 1px 的除法的问题..在动画或者缩放情况下...不能凑整数就会出现溢出
ff 会收拾的很干净
lneoi
287 天前
400%下能稳定出现,hover 后的 box-shadow 残留的,改变颜色后可以看到残留颜色,去除第一个 inset 后不会出现,但动态效果会不太一样。
P233
287 天前
感觉是 transition 不明确导致的问题

前:inset 0 -1px 0 rgba(15, 15, 15, 1)
后:inset 0 0 0 rgba(0, 0, 0, 0), 0 3px 0 rgba(0, 0, 0, 1)

建议

前:0 1px 0 rgba(15, 15, 15, 1)
后:0 3px 0 rgba(0, 0, 0, 1)
LLaMA2
287 天前
box-sizing: inherit; 导致的
Caturra
287 天前
@lneoi 去掉第一个 inset 后不对味了。。
@P233 简单调试了一下,这个好像 edge 仍有问题;但是前一个不变后一个改为 inset 0 -3px 0 rgba(0, 0, 0, 1)就没问题,只是 inset 的话感觉很拥挤
@ye4tar 没太懂 box 这些概念,我先查查资料
P233
287 天前
如果 edge 还有问题,是不是一个加了 inset , 另一个没有?

参考 W3C 的要求

For example, the animation type of the box-shadow property is shadow list, which defines that when the inset keyword is absent in one value but present in the other, discrete animation is used. As a result 0px 0px black and inset 10px 10px black are not transitionable.

https://drafts.csswg.org/css-transitions/
Caturra
287 天前
@P233 全部加了或者全部去掉都可能有问题,它是符合 W3C 的标准有过渡动画,只是和 5 楼描述的阴影残留 bug 还是有

太麻烦了,本来只是想抄一下样式,还是换个别的主题吧

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/960020

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX