类svg:悬停css填充无法正常工作[重复]

Posted

技术标签:

【中文标题】类svg:悬停css填充无法正常工作[重复]【英文标题】:class svg :hover css fill not working correctly [duplicate] 【发布时间】:2015-10-06 06:18:45 【问题描述】:

当我悬停时如何使这个 svg 填充?我查看了大量文档并尝试了多种方法,但均未成功。

这是我的html

  <a class="anchor-class" href="#"><svg class="svg-class"></svg></a>

我在我的 css 中尝试了以下内容

a svg:hover 
    fill: #50c8e8;

还有

.anchor-class svg:hover
    fill: #50c8e8;

甚至

.svg-class :hover
    fill:#50c8e8;

我做错了什么?我应该可以用 css 完成这个,对吧?

编辑:注意这张图片被用作背景图片可能会有所帮助。在下面的 css 中有更多细节:

.svg-class 
    background-repeat: no-repeat;
    background-size: 20px 20px;
    height: 20px;
    width: 20px;
    display: inline-block;
    .background-image('path.svg')

编辑 2:这是 .svg 代码,但不确定它是否重要

<?xml version="1.0" encoding="utf-8"?>
<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg"   xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
 viewBox="0 0 100 100" style="enable-background:new 0 0 100 100;" xml:space="preserve">
<style type="text/css">
    .st0fill:#E4E4E4;
</style>
<path id="XMLID_154_" class="st0" d="M85.5,15c-19.5-19.4-51-19.4-70.4,0c-19.5,19.4-19.5,51,0,70.4c19.5,19.5,51,19.4,70.4,0
C105,66,105,34.4,85.5,15z M49.5,9c5.3,0,9.5,4.3,9.5,9.5c0,5.3-4.3,9.6-9.5,9.6c-5.3,0-9.6-4.3-9.6-9.6C39.9,13.2,44.1,9,49.5,9z
 M64.8,79.1c0,2-1,3-3,3H37.3c-2,0-3-1-3-3v-6.3c0-2,1-3,3-3h4.5V43.4h-4.6c-2,0-3-1-3-3v-6.3c0-2,1-3,3-3h17.2c2,0,3,1,3,3v35.7
h4.6c2,0,3,1,3,3V79.1z"/>
</svg>

【问题讨论】:

@Paulie_D 我现在看到了。我没有意识到使用 svg 作为.background-image 会改变它。谢谢。随意删除 您可以根据需要删除问题。我做不到。 John Carpenter 也不能先删除他的答案 好吧……那就留下吧,虽然我不知道你是否可以将它标记为版主(我不是)删除? 【参考方案1】:

更新:使用您发布的 svg 代码,您可以通过这种方式执行此操作。

例子:

a .svg-class:hover path 
    fill: #50c8e8;


.svg-class 
    height: 20px;
    width: 20px;
    display: inline-block;
<a class="anchor-class" href="#">
  <svg class="svg-class" version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg"   xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
 viewBox="0 0 100 100" style="enable-background:new 0 0 100 100;" xml:space="preserve">
    <style type="text/css">
    .st0fill:#E4E4E4;
    </style>
    <path id="XMLID_154_" class="st0" d="M85.5,15c-19.5-19.4-51-19.4-70.4,0c-19.5,19.4-19.5,51,0,70.4c19.5,19.5,51,19.4,70.4,0
C105,66,105,34.4,85.5,15z M49.5,9c5.3,0,9.5,4.3,9.5,9.5c0,5.3-4.3,9.6-9.5,9.6c-5.3,0-9.6-4.3-9.6-9.6C39.9,13.2,44.1,9,49.5,9z
 M64.8,79.1c0,2-1,3-3,3H37.3c-2,0-3-1-3-3v-6.3c0-2,1-3,3-3h4.5V43.4h-4.6c-2,0-3-1-3-3v-6.3c0-2,1-3,3-3h17.2c2,0,3,1,3,3v35.7
h4.6c2,0,3,1,3,3V79.1z"/>
  </svg>
</a>

【讨论】:

但是这样你不能应用过渡速度...

以上是关于类svg:悬停css填充无法正常工作[重复]的主要内容,如果未能解决你的问题,请参考以下文章

填充颜​​色的CSS过渡在悬停时不起作用[重复]

悬停链接并在 SVG 中更改颜色 [重复]

在悬停另一个元素时更改 SVG 填充颜色

CSS 中的表格悬停无法正常工作

悬停按钮时如何更改svg颜色

带有水平子菜单的纯 html css 菜单。悬停在 IE 中无法正常工作