【发布时间】:2021-02-14 09:16:47
【问题描述】:
奇怪的是我找不到其他人报告这个问题;这让我觉得也许我做错了什么。
我在包含:hover 伪类的 SVG 中有一个 <style> 标记,当 SVG 直接嵌入 HTML 时它可以正常工作,但是当我将它放在符号中并用 @ 引用它时987654324@标签,<style>标签内的样式不适用。
SVG 直接嵌入:
<svg width="400" height="110">
<style>
#myRect:hover {
fill: red;
}
</style>
<rect id="myRect" width="300" height="100" />
</svg>
在符号中定义,并通过<use> 标签引用。
<svg style="display: none">
<symbol id="rectangle">
<style>
#myRect:hover {
fill: red;
}
</style>
<rect id="myRect" width="300" height="100" />
</symbol>
</svg>
<svg width="400" height="110">
<use href="#rectangle"></use>
</svg>
为什么会这样?!似乎是一种奇怪的行为,我错过了什么吗?!
更新:正如 Temani Afif 在 cmets 中提到的,这个问题只存在于 Chrome 中,Firefox 似乎可以正常工作。 (未在任何其他浏览器上测试过)
【问题讨论】:
-
@TemaniAfif 好的,你能给我介绍一些规格吗? 为什么无效?!那么你应该如何在符号中实现悬停效果呢?
-
制作符号外的样式
-
这似乎是一个 chrome 错误,Firefox 工作正常。 (或其中之一违反规范)
-
在第二种情况下,您将鼠标悬停在 use 元素上而不是 myRect 上
标签: html css google-chrome svg