如何在悬停时替换SVG CSS背景?

如何在悬停时替换SVG CSS背景?,css,svg,Css,Svg,在这里,我试图在:hover上用另一个(放大镜图标)替换现有的SVG CSS背景(GitHub图标)。问题是,由于我在前面使用了:,它在:hover:上同时显示两个SVG: 。合作伙伴链接:之前{ 内容:“; 宽度:60px; 高度:24px; 显示器:flex; 背景:url(“数据:image/svg+xml;charset=utf-8”),不重复; 背景位置:右; } .合作伙伴链接:悬停, .合作伙伴链接:焦点{ 背景:url(“数据:image/svg+xml;utf8,”)不重复0

在这里,我试图在
:hover
上用另一个(放大镜图标)替换现有的SVG CSS背景(GitHub图标)。问题是,由于我在前面使用了
,它在
:hover
:上同时显示两个SVG:

。合作伙伴链接:之前{
内容:“;
宽度:60px;
高度:24px;
显示器:flex;
背景:url(“数据:image/svg+xml;charset=utf-8”),不重复;
背景位置:右;
}
.合作伙伴链接:悬停,
.合作伙伴链接:焦点{
背景:url(“数据:image/svg+xml;utf8,”)不重复0;
颜色:红色;
}

看起来您只想更改hover/focus上的伪元素。请注意,您不是将
:悬停在
元素之前,而是将其悬停在其父元素上

.partner-link:before {
  content: "";
  width: 60px;
  height: 24px;
  display: flex;
  background: url("data:image/svg+xml;charset=utf-8,<svg viewBox='0 0 24 24' xmlns='http://www.w3.org/2000/svg'><path d='M12 .297c-6.63 0-12 5.373-12 12 0 5.303 3.438 9.8 8.205 11.385.6.113.82-.258.82-.577 0-.285-.01-1.04-.015-2.04-3.338.724-4.042-1.61-4.042-1.61C4.422 18.07 3.633 17.7 3.633 17.7c-1.087-.744.084-.729.084-.729 1.205.084 1.838 1.236 1.838 1.236 1.07 1.835 2.809 1.305 3.495.998.108-.776.417-1.305.76-1.605-2.665-.3-5.466-1.332-5.466-5.93 0-1.31.465-2.38 1.235-3.22-.135-.303-.54-1.523.105-3.176 0 0 1.005-.322 3.3 1.23.96-.267 1.98-.399 3-.405 1.02.006 2.04.138 3 .405 2.28-1.552 3.285-1.23 3.285-1.23.645 1.653.24 2.873.12 3.176.765.84 1.23 1.91 1.23 3.22 0 4.61-2.805 5.625-5.475 5.92.42.36.81 1.096.81 2.22 0 1.606-.015 2.896-.015 3.286 0 .315.21.69.825.57C20.565 22.092 24 17.592 24 12.297c0-6.627-5.373-12-12-12' /></svg>") no-repeat;
  background-position: right;
}

.partner-link:hover:before,
.partner-link:focus:before {
  background: url("data:image/svg+xml;utf8,<svg fill='red' xmlns='http://www.w3.org/2000/svg'><path d='M15.838,13.693l-2.785-2.786c0.705-1.102,1.121-2.408,1.121-3.813c0-3.911-3.17-7.081-7.081-7.081s-7.081,3.17-7.081,7.081c0,3.91,3.17,7.08,7.081,7.08c1.406,0,2.711-0.415,3.813-1.121l2.787,2.786c0.195,0.197,0.518,0.197,0.715,0l1.43-1.43C16.037,14.211,16.037,13.89,15.838,13.693z M7.093,12.15c-2.789,0-5.058-2.269-5.058-5.057c0-2.789,2.269-5.058,5.058-5.058c2.79,0,5.057,2.269,5.057,5.058C12.15,9.882,9.883,12.15,7.093,12.15z'/></svg>") no-repeat 0 0;
    color: red;
}
。合作伙伴链接:之前{
内容:“;
宽度:60px;
高度:24px;
显示器:flex;
背景:url(“数据:image/svg+xml;charset=utf-8”),不重复;
背景位置:右;
}
.合作伙伴链接:悬停:之前,
.合作伙伴链接:焦点:之前{
背景:url(“数据:image/svg+xml;utf8,”)不重复0;
颜色:红色;
}

非常感谢你,马特!你说得对。我以前试过错误的方法
:before:hover
.partner-link:before {
  content: "";
  width: 60px;
  height: 24px;
  display: flex;
  background: url("data:image/svg+xml;charset=utf-8,<svg viewBox='0 0 24 24' xmlns='http://www.w3.org/2000/svg'><path d='M12 .297c-6.63 0-12 5.373-12 12 0 5.303 3.438 9.8 8.205 11.385.6.113.82-.258.82-.577 0-.285-.01-1.04-.015-2.04-3.338.724-4.042-1.61-4.042-1.61C4.422 18.07 3.633 17.7 3.633 17.7c-1.087-.744.084-.729.084-.729 1.205.084 1.838 1.236 1.838 1.236 1.07 1.835 2.809 1.305 3.495.998.108-.776.417-1.305.76-1.605-2.665-.3-5.466-1.332-5.466-5.93 0-1.31.465-2.38 1.235-3.22-.135-.303-.54-1.523.105-3.176 0 0 1.005-.322 3.3 1.23.96-.267 1.98-.399 3-.405 1.02.006 2.04.138 3 .405 2.28-1.552 3.285-1.23 3.285-1.23.645 1.653.24 2.873.12 3.176.765.84 1.23 1.91 1.23 3.22 0 4.61-2.805 5.625-5.475 5.92.42.36.81 1.096.81 2.22 0 1.606-.015 2.896-.015 3.286 0 .315.21.69.825.57C20.565 22.092 24 17.592 24 12.297c0-6.627-5.373-12-12-12' /></svg>") no-repeat;
  background-position: right;
}

.partner-link:hover:before,
.partner-link:focus:before {
  background: url("data:image/svg+xml;utf8,<svg fill='red' xmlns='http://www.w3.org/2000/svg'><path d='M15.838,13.693l-2.785-2.786c0.705-1.102,1.121-2.408,1.121-3.813c0-3.911-3.17-7.081-7.081-7.081s-7.081,3.17-7.081,7.081c0,3.91,3.17,7.08,7.081,7.08c1.406,0,2.711-0.415,3.813-1.121l2.787,2.786c0.195,0.197,0.518,0.197,0.715,0l1.43-1.43C16.037,14.211,16.037,13.89,15.838,13.693z M7.093,12.15c-2.789,0-5.058-2.269-5.058-5.057c0-2.789,2.269-5.058,5.058-5.058c2.79,0,5.057,2.269,5.057,5.058C12.15,9.882,9.883,12.15,7.093,12.15z'/></svg>") no-repeat 0 0;
    color: red;
}