我有几个SVG图形,我希望通过我的外部样式表修改它们的颜色 - 而不是直接在每个SVG文件中进行修改。我没有将图形内联,而是将它们存储在我的图像文件夹中并指向它们。
我以这种方式实现它们,以便工具提示可以正常工作,并且我还将每个图形包装在<a>
标签中以允许链接。
<a href='http://youtube.com/...' target='_blank'><img class='socIcon' src='images/socYouTube.svg' title='View my videos on YouTube' alt='YouTube' /></a>
这里是SVG图形的代码:
<?xml version="1.0" encoding="utf-8"?>
<?xml-stylesheet href="stylesheets/main.css" type="text/css"?>
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" viewBox="0 0 56.69 56.69">
<g>
<path d="M28.44......./>
</g>
</svg>
我将以下内容放在我的外部CSS文件(main.css)中:
.socIcon g {fill:red;}
然而它对图形没有影响。我也尝试了.socIcon g path {}
和.socIcon path {}
。
似乎出了点问题,也许是我的实现不允许外部CSS修改,或者我错过了什么步骤?非常感谢你的帮助!我只需要通过我的外部样式表修改SVG图形的颜色能力,但我不能失去工具提示和链接功能(虽然我可能可以没有工具提示)。
svg { fill:red; }
或者给你的路径命名一个类名,例如<path class="socIcon" d="M28.44 ..... />
这样应该就可以了。 - Dwza<svg>
元素内部使用以下任意一种方式来引用样式文件styles.css
:<link xmlns="http://www.w3.org/1999/xhtml" rel="stylesheet" href="styles.css"/>
或者<style>@import url(styles.css);</style>
。 - BarryCap