首页 > web前端 > css教程 > 正文

如何解决 :hover 和相邻兄弟选择器 Webkit 错误?

DDD
发布: 2024-10-24 00:06:29
原创
556 人浏览过

How to Resolve the :hover and Adjacent-Sibling Selectors Webkit Bug?

使用 :hover 和相邻兄弟选择器理解和解决 Webkit 错误

在 Webkit 浏览器(例如 Chrome、Safari)中,一个错误当与多个相邻同级选择器一起使用 :hover 伪类时会出现这种情况。具体来说,当引入第三个相邻兄弟时,悬停效果将不会按预期应用。

例如:

a:hover + div {}
登录后复制

此代码运行完美。但是,添加另一个相邻同级选择器:

div:hover + a + div {}
登录后复制

破坏了 Webkit 浏览器中的预期行为。

奇怪的是,如果您先将鼠标悬停在锚元素上,然后再悬停在 div 元素上,样式正确应用。此外,即使没有声明样式,包含相邻的 ~ 同级选择器也可以解决该问题:

div:hover ~ div {}
登录后复制

要解决此错误,您可以通过在 body 元素上模拟动画来实现解决方法:

body { -webkit-animation: bugfix infinite 1s; }

@-webkit-keyframes bugfix { 
  from { padding: 0; } 
  to { padding: 0; } 
}
登录后复制

通过触发body上的空动画,可以有效绕过该bug。您可以在此 JSFiddle 验证解决方案:http://jsfiddle.net/jalbertbowdenii/ds2yY/1/

以上是如何解决 :hover 和相邻兄弟选择器 Webkit 错误?的详细内容。更多信息请关注PHP中文网其他相关文章!

来源:php
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责声明 Sitemap
PHP中文网:公益在线PHP培训,帮助PHP学习者快速成长!