我们 可以使用CSS来为SVG图形添加样式 。给 SVG 图形添加样式就是改变它们的外观,可以修改描边颜色和宽度,填充颜色,透明度等等。
我们可以使用6种方式来为SVG图形添加样式。我们将会在本文介绍这6种方式,文章的最后会给出所有可以在SVG上使用的CSS属性。
SVG图形可以使用的CSS属性和HTML元素可以使用CSS属性稍微有一些不同,但是绝大部分的属性还是相同的。
使用属性来添加CSS样式我们可以使用一些属性来为SVG图形添加样式,例如 stroke 和 fill 属性。下面是一个例子:
<circle stroke="#000000" fill="#00ff00" />
这里有一系列的样式属性可以使用,但是建议使用内联样式表或外部样式表来为SVG图形添加样式。
使用 style 属性这个方法不使用属性来添加样式,而是使用 style 属性,在它里面指定所需要的CSS样式。如果你需要直接在SVG图形中嵌入样式,这个方法可以很好的满足需求。这里的CSS属性和内联级外部CSS样式表中的CSS属性是相同的,你可以直接复制过来使用。
下面是一个使用 style 属性的例子:
<circle style="stroke: #000000; fill:#00ff00;" />使用内联样式表
可以使用一个内联样式表为SVG图形添加样式。看下面的例子:
<svg xmlns="http://www.w3.org/2000/svg"> <style type="text/css" > <![CDATA[ circle { stroke: #006600; fill: #00cc00; } ]]> </style> <circle cx="40" cy="40" r="24"/> </svg>
这种使用内联样式表的工作方式和在HTML元素上使用内联样式表是完全相同的。
内联样式表可以在IE7和Firefox 3.0.5浏览器上正常工作。
class样式你还可以为每个图形都添加一个class类,使用这个class类来在样式表中作为选择器选择相应的图形。
下面是一个例子,有两个圆形,一个红色一个绿色。分别为它们设置不同的class,并在样式表中使用class来选择图形设置样式。
<svg xmlns="http://www.w3.org/2000/svg"> <style type="text/css" > <![CDATA[ circle.myGreen { stroke: #006600; fill: #00cc00; } circle.myRed { stroke: #660000; fill: #cc0000; } ]]> </style> <circle class="myGreen" cx="40" cy="40" r="24"/> <circle class="myRed" cx="40" cy="100" r="24"/> </svg>使用外部样式表
当你在使用外部样式表的时候,样式表是一个单独的文件,这和CSS外部样式表是相同的。你需要使用下面的语法来将外部样式表引入。
<?xml-stylesheet type="text/css" href="svg-stylesheet.css" ?>
上面的代码告诉SVG处理器到什么地方去查找 svg-stylesheet.css 文件。
下面是一个使用外部样式表的例子,外部样式表的声明被放置在SVG文件中。
<?xml-stylesheet type="text/css" href="svg-stylesheet.css" ?> <svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"> <circle cx="40" cy="40" r="24" style="stroke:#006600; fill:#00cc00"/> </svg>在HTML页面中使用 style 标签
如果你将一个SVG嵌入到一个HTML页面中,你可以在HTML页面中使用 style 标签来为SVG图形设置样式。例如:
<html> <body> <style> </style> <svg> </svg> </body> </html>
要为SVG图形设置样式,只需要在 style 标签中添加CSS属性即可。这和在HTML页面中对DOM元素设置样式的方式是完全相同的。下面是一个例子:
<html> <body> <style> circle { stroke: #006600; fill : #00cc00; } </style> <svg> <circle cx="40" cy="40" r="24" /> </svg> </body> </html>
查看更多关于SVG基础 | SVG和CSS级联样式表的详细内容...