【发布时间】:2019-07-14 23:46:43
【问题描述】:
我的 CSS 文件中编码了一个 SVG 图标。如何在悬停时更改它的颜色,而不会出现不同颜色的重复图标?
在我的 CSS 文件中,我有:
background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 511.999 511.999'%3E%3Cpath fill='red' d='M83.578 167.256H16.716C7.524 167.256 0 174.742 0 183.971v300.881c0 9.225 7.491 16.713 16.716 16.713h66.862c9.225 0 16.716-7.489 16.716-16.713V183.971c0-9.229-7.525-16.715-16.716-16.715zM470.266 167.256c-2.692-.456-128.739 0-128.739 0l17.606-48.032c12.148-33.174 4.283-83.827-29.424-101.835-10.975-5.864-26.309-8.809-38.672-5.697-7.09 1.784-13.321 6.478-17.035 12.767-4.271 7.233-3.83 15.676-5.351 23.696-3.857 20.342-13.469 39.683-28.354 54.2-25.952 25.311-106.571 98.331-106.571 98.331v267.45h278.593c37.592.022 62.228-41.958 43.687-74.749 22.101-14.155 29.66-43.97 16.716-66.862 22.102-14.155 29.66-43.97 16.716-66.862 38.134-24.423 25.385-84.871-19.172-92.407z'/%3E%3C/svg%3E");
您可以从 fill='red' 属性中看到它是红色的。
当用户将鼠标悬停在带有此背景 SVG 的图标上时,如何将其颜色更改为蓝色?我看到的唯一解决方案是使用相同的 SVG 代码创建另一个 CSS 类,但填充颜色不同,但这只会增加文件大小并且似乎是多余的。
【问题讨论】:
-
您可以将
svg移动到标记中而不是background-image吗?如果是这样,你可以看看codepen.io/luiscarvalho/pen/hJFrx
标签: html css svg background-image