有一个 svg 图标,使用<use>. 有必要使用 实现从一种颜色到另一种颜色的平滑过渡:hover。图标由几个元素组成,每个元素都应该将颜色更改为某个特定的颜色,因此表单的 css 构造在这里不起作用
svg { fill: #ddd; transition: .25s; }
svg:hover { fill: #ddd; }
下面实现了一个最小的示例。ps如果你用FF检查,那么一切正常,但在chrome和opera中这是一个问题
:root {
--color: #33d;
--color-bg: #99b;
}
svg {
width: 30px;
height: 30px;
}
circle, path {
transition: 0.25s;
}
svg:hover {
--color: #d33;
--color-bg: #d99;
}
<div style="display: none;">
<svg id="play" viewBox="0 0 22 22" fill="none" xmlns="http://www.w3.org/2000/svg">
<circle cx="11" cy="11" r="11" fill="var(--color)"/>
<circle cx="11.0001" cy="11.0001" r="9.9" fill="var(--color-bg)"/>
<path d="M8.7998 13.4619V8.4001C8.7998 7.61556 9.66199 7.13657 10.3281 7.55104L14.1245 9.91323C14.7308 10.2905 14.7577 11.1634 14.1757 11.5772L10.3793 14.2769C9.71725 14.7477 8.7998 14.2743 8.7998 13.4619Z" fill="var(--color)"/>
</svg>
</div>
<svg>
<use xlink:href="#play"></use>
</svg>
