首页 >web前端 >css教程 >为什么 :hover 和多个相邻兄弟选择器会导致 Safari 和 Chrome 中出现错误?

为什么 :hover 和多个相邻兄弟选择器会导致 Safari 和 Chrome 中出现错误?

Patricia Arquette
Patricia Arquette原创
2024-10-24 03:42:301058浏览

Why Do :hover and Multiple Adjacent-Sibling Selectors Cause Bugs in Safari and Chrome?

带有 :hover 和多个相邻兄弟选择器的 Safari 和 Chrome 错误

在 Web 开发中,使用 :hover 伪类和相邻-兄弟选择器通常受到 Safari、Chrome、Opera 和 Firefox 等主流浏览器的支持。例如,以下代码按预期工作:

a:hover + div {}

但是,当添加多个相邻同级选择器时,Webkit 浏览器(包括 Safari 和 Chrome)会表现出意外行为:

div:hover + a + div {}

在这种情况下,Webkit 无法按预期应用样式。

解决此错误的解决方法是在 body 元素上使用样式声明来创建微妙的动画效果:

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

@-webkit-keyframes bugfix { 
  from { padding: 0; } 
  to { padding: 0; } 
}

此动画没有可见效果,但会触发样式重新计算,从而允许 Webkit 浏览器正确应用 :hover 和相邻同级选择器样式。

以下是演示解决方法的示例:http://jsfiddle。 net/jalbertbowdenii/ds2yY/1/.

通过采用此技术,您可以克服 Webkit 错误并确保不同浏览器之间的行为一致。

以上是为什么 :hover 和多个相邻兄弟选择器会导致 Safari 和 Chrome 中出现错误?的详细内容。更多信息请关注PHP中文网其他相关文章!

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn