【发布时间】:2020-03-28 21:40:07
【问题描述】:
我有一个 SVG 标记,我想在它悬停时更改填充颜色。 我在 SVG 标记内添加了一个样式标记,但似乎 hover 不起作用,而简单的样式则可以正常工作。 这是我的 SVG 标签:
<svg width="28" height="81" viewBox="0 0 28 81" xmlns="http://www.w3.org/2000/svg">
<style type="text/css">
.slick_next_arrow {
fill:red;
}
.slick_next_arrow:hover {
fill:green;
}
</style>
<path class="slick_next_arrow" hover="fill:green" fill-rule="evenodd" clip-rule="evenodd" d="M3.73141 1.20959C2.95311 -0.00927037 1.3341 -0.366415 0.115239 0.411883L25.5894 40.3058L0 80.3802C1.21886 81.1585 2.83787 80.8014 3.61617 79.5825L27.4729 42.2216C27.7642 41.7653 27.8965 41.2531 27.884 40.7498C28.1017 40.0409 28.0185 39.2445 27.5881 38.5705L3.73141 1.20959Z"/>
</svg>
我已通过以下两种方式将此 svg 包含到 element::after 中:
-
在内容中添加整个标签
#slick-views-customer-quotes-carousel-block-main-1 .slick__arrow .slick-next::after { content : url('data:image/svg+xml; utf8, <svg class="" width="28" height="81" viewBox="0 0 28 81" xmlns="http://www.w3.org/2000/svg"> <style type="text/css"> .slick_next_arrow { fill:blue; } .slick_next_arrow:hover { fill:green; } </style> <path class="slick_next_arrow" hover="fill:green" fill-rule="evenodd" clip-rule="evenodd" d="M3.73141 1.20959C2.95311 -0.00927037 1.3341 -0.366415 0.115239 0.411883L25.5894 40.3058L0 80.3802C1.21886 81.1585 2.83787 80.8014 3.61617 79.5825L27.4729 42.2216C27.7642 41.7653 27.8965 41.2531 27.884 40.7498C28.1017 40.0409 28.0185 39.2445 27.5881 38.5705L3.73141 1.20959Z"/></svg>');}
-
作为单独的 SVG 文件
#slick-views-customer-quotes-carousel-block-main-1 .slick__arrow .slick-next::after { content : url("../images/right_arrow.svg"); }
但它们都不起作用。 关于如何解决这个问题的任何想法?
【问题讨论】:
-
你能测试一下这个#slick-views-customer-quotes-carousel-block-main-1 .slick__arrow svg:hover path { fill: #0058A7; }
-
@NaserNikzad,它不起作用。
-
@NaserNikzad 当我们直接在 dom 中使用