CSS属性

一个svg的圆形效果,不仅可以通过svg自身去实现,我们也可以通过css去实现,只需要使用一个类名加样式就可以。除了圆形之外,多边形,矩形等不规则形状也可以通过css实现。使用css属性和css选择器去实现有时候可以提高我们对样式的复用。当页面中我们需要5个圆形,svg标签需要我们去写5次,而且我们修改半径需要每个都要修改,而css只需要我们修改类名中的样式就可以解决。

填充

在svg的默认状态下,我们写一个圆形默认用黑色去填充,如果我们需要修改填充的颜色,我们可以在svg元素上添加fill属性改变颜色。fill属性相比于cx是没有限制的,可以在任何标签中使用。
​​​fill-opacity​​​属性用来设置填充颜色或者填充图像的透明度。这个属性和fill属性在兼容性上是一样的。我们需要注意的是在低浏览器中不支持css渐变时,我们就可以通过​​fill​​​属性填充和​​fill-opacity​​​属性来控制透明度。这个属性还能继承,父元素上设置后,子元素上也会有这个属性。如果我们想要图像时半透明但是文字不是透明,我们可以使用​​opacity​​中设置fill-opacity,但是需要注意的是opacity属性是不具有继承性的而且还会影响其他元素的透明度。


fill-rule

​fill-rule​​​属性是用来表示路径发生交叉时的填充规则。支持的属性值有​​nonzero​​​和​​evenodd​​。该属性的默认值是nonzero,指的是多边形完全填充。erevenodd指的是多边形中间区域没有被填充,是空的。可以用来实现空心的五角星。


其他

如果我们想要设置描边的其实偏移可以使用​​stroke-dashoffset​​​属性。如果想要描边全部显示可以设置偏移为0,如果偏移距离太大的话,描边就会看不见。这个效果可以用来实现进度条的效果。如果想要元素可以在转折点的位置显示标记可以使用​​marker-mid​​​属性。对于图标的处理,当我们想要实现描边大小设置的宽度值不会随图标尺寸而变化。我们可以设置​​verctor-effect​​​属性。这个属性对应的属性值设置为​​non-scaling-stroke​​​。文字块位置设置的属性有​​text-anchor​​​和​​dominant-baseline​​。第一个属性用来让文字块水平居中显示,而第二个属性是用来让文字块垂直居中显示。