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

为什么我的 :hover CSS 不适用于嵌入 `` 的 SVG 元素,如何修复它?

Mary-Kate Olsen
发布: 2024-11-26 02:58:09
原创
953 人浏览过

Why Doesn't My :hover CSS Work on SVG Elements Embedded with ``, and How Can I Fix It?

通过 设置嵌入的 SVG 元素的样式使用 :hover CSS

在您提供的代码中,您尝试使用 :hover CSS 设置嵌入式 SVG 元素的样式,但它不适用于使用 引用的组内的元素。元素。这是因为,根据 SVG 规范,CSS 选择器无法应用于通过 克隆元素而生成的克隆 DOM 树。

Firefox 支持和解决方法

Firefox 是唯一支持通过 来寻址虚拟元素的浏览器。虫洞。但是,其他浏览器则不然。

解决方法是在 时使用 currentColor 将不同的颜色应用于具有填充或描边属性的元素。元素的颜色属性在悬停时发生变化。例如:

#p0 {fill:currentColor}
#use1:hover {color:green}
#use2:hover {color:red}
#use3:hover {color:blue}
登录后复制

可能的替代方案

实现目标的另一种方法是使用 JavaScript 修改鼠标悬停事件上的 SVG 元素。这将涉及向每个添加事件侦听器。元素,然后更新每个组中相关元素的属性或样式。

选择正确的解决方案

与 Firefox 兼容的 CSS 解决方案和 JavaScript 之间的选择基于的方法取决于浏览器支持和您项目的具体要求。如果浏览器兼容性很重要,请使用 JavaScript 方法。否则,您可以选择 CSS 解决方案,以实现简单性和易于实施。

进一步注意事项

要在嵌入对象内的特定部分上实现所需的悬停效果,您可能需要使用额外的 JavaScript 来修改悬停时每个组内特定元素的属性或样式。 JavaScript 为动态元素操作提供了更大的灵活性,允许您定位和修改嵌入对象中的各个元素。

以上是为什么我的 :hover CSS 不适用于嵌入 `` 的 SVG 元素,如何修复它?的详细内容。更多信息请关注PHP中文网其他相关文章!

来源:php.cn
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
作者最新文章
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板