德育处主任
矩形使用 标签,默认填充色是黑色,当只设置宽高时,渲染出来的矩形就是黑色的矩形。
矩形基础属性:
x: 左上角x轴坐标
y: 左上角y轴坐标
width: 宽度
height: 高度
rx: 圆角,x轴的半径
ry: 圆角,y轴的半径
通过 x 和 y 可以设置矩形位置

rx,ry如果只设置了一个的值,另一个值默认相同
当rect的宽度高度相同并且rx值为宽度一半的时候,就是一个圆形了
<svg width="300" height="300" style="border: 1px solid red;">
<rect
width="100"
height="100"
rx="50"
>rect>
svg>

圆形使用 标签,基础属性有:
cx: 圆心在x轴的坐标cy: 圆心在y轴的坐标r: 半径 <svg width="300" height="300" style="border: 1px solid red;">
<circle cx="0" cy="0" r="50">circle>
svg>

椭圆使用 标签,基础属性有:
cx: 圆心在x轴的坐标cy: 圆心在y轴的坐标rx: x轴的半径ry: y轴的半径 和 差不多,只是将半径拆成x轴和y轴的。很好理解,点组成了线,所以就需要2点的坐标去组成线
直线使用 标签,基础属性有:
x1: 起始点x坐标y1: 起始点y坐标x2: 结束点x坐标y2: 结束点y坐标stroke: 描边颜色x1 和 x2 ,没有 x3 ,也没有 y3 。 需要使用设置 stroke 属性才会有绘制效果。 <svg width="300" height="300" style="border: 1px solid red;">
<line
x1="0"
y1="0"
x2="100"
y2="100"
stroke="black"
>line>
svg>

使用 可以绘制折线,基础属性有:
points点集(多个坐标点,可用逗号分隔,也可以不用)stroke描边颜色fill填充颜色
fill 默认值是黑色,不设置fill为none会自动闭合线条进行填充(前提设置了stroke颜色值) <svg width="300" height="300" style="border: 1px solid red;">
polyline>
svg>

多边形使用 标签,基础属性和 差不多:
points: 点集stroke: 描边颜色fill: 填充颜色
会自动闭合(自动将起始点和结束点链接起来)。 <svg width="300" height="300" style="border: 1px solid red;">
<polygon
points="10 10 200 80 230 230"
stroke="blue"
fill="none"
>polygon>
svg>
其实在 SVG 里,所有基本图形都是 的简写。所有描述轮廓的数据都放在 d 属性里,d 是 data 的简写。
d 属性又包括以下主要的关键字(注意大小写!):
moveto 的意思。每个路径都必须以 M 开始。M 传入 x 和 y 坐标,用逗号或者空格隔开。L: 轮廓坐标,lineto 的意思。L 是跟在 M 后面的。它也是可以传入一个或多个坐标。大写的 L 是一个绝对位置。L,和 L 的作用差不多,但 l 是一个相对位置。H: 和上一个点的Y坐标相等,是 horizontal lineto 的意思。它是一个绝对位置。h: 和 H 差不多,但 h 使用的是相对定位。V: 和上一个点的X坐标相等,是vertical lineto 的意思。它是一个绝对位置。v: 这是一个小写的 v ,和大写 V 的差不多,但小写 v 是一个相对定位。Z: 关闭当前路径,closepath 的意思。它会绘制一条直线回到当前子路径的起点。 <svg width="300" height="300" style="border: 1px solid red;">
<path
d="M 10 10 L 100 10 L 100 300"
stroke="blue"
fill="none"
>
path>
svg>
如果全是使用大写 L 来描述每个点的位置,那可以把 L 也去掉,直接写点集,上面svg等同于下面
<svg width="300" height="300" style="border: 1px solid red;">
<path
d="M 10 10 100 10 100 300"
stroke="blue"
fill="none"
>
path>
svg>
你也可以添加逗号分隔下坐标,效果也是一样的
<svg width="300" height="300" style="border: 1px solid red;">
<path
d="M 10 10, 100 10, 100 300"
stroke="blue"
fill="none"
>
path>
svg>

在 d 的数据集里,使用 Z 可以闭合路径。
注意要大写
<svg width="300" height="300" style="border: 1px solid red;">
<path
d="M 10 10 L 100 10 L 100 300 Z"
stroke="blue"
fill="none"
>
path>
svg>

L 的小写方式 l 可以实现相对位置写法。
l 里的参数会与前一个点的 x 和 y 进行相加,得到一个新的坐标。 <svg width="300" height="300" style="border: 1px solid red;">
<path
d="M 10 10 l 90 0 l -10 300 Z"
stroke="blue"
fill="none"
>
path>
svg>
d="M 10 10 l 90 0 l -10 300 Z"等同于M 10 10 L 100 10 L 100 300 Z
H 后面只需传入 X坐标 即可,它的 Y坐标 与前一个点相同。
H,在写入X坐标 <svg width="310" height="300" style="border: 1px solid red;">
<path
d="M 10 0 H 300 Z"
stroke="blue"
fill="none"
>
path>
svg>
d="M 10 10 H 100" 等同于 d="M 10 10 L 100 10"
h和小l作用差不多,都是从我这里开始出发,要走多少距离的意思
h传入的数据会和前一个点的 X坐标 相加 //这里把width设置称为了310
<svg width="310" height="300" style="border: 1px solid red;">
<path
d="M 10 0 H 300 Z"
stroke="blue"
fill="none"
>
path>
svg>
<svg width="310" height="300" style="border: 1px solid red;">
<path
d="M 10 0 h 290 Z"
stroke="blue"
fill="none"
>
path>
svg>

V 后面只需传入 Y坐标 即可,它的 X坐标 与前一个点相同。
<svg width="300" height="300" style="border: 1px solid red;">
<path
d="M 10 10 V 100"
stroke="blue"
fill="none"
>
path>
svg>
d="M 10 10 V 100"等同于d = "M 10 10 10 100"
v 和 V 的作用差不多,小写 v 是一个相对位置。
h,大写的H是相对于Y轴,那么小写h计算坐标的时候就不要动y轴了,只变化x轴v,只需要变动y轴,x轴和他没关系,始终不变在 SVG 中可以使用 path 配合 A属性 绘制椭圆弧。
A(rx, ry, xr, laf, sf, x, y)
rx: 椭圆X轴半径ry: 椭圆Y轴半径xr: 椭圆旋转角度laf: 是否选择弧长较长的那一段。0: 短边(小于180度); 1: 长边(大于等于180度)sf: 是否顺时针绘制。0: 逆时针; 1: 顺时针x: 终点X轴坐标y: 终点Y轴坐标设置 SVG 元素样式其实和 CSS 差不多,常见的方法有4种。
<svg width="400" height="400" style="border: 1px solid red;">
<rect
x="100"
y="100"
width="200"
height="100"
fill="pink"
/>
svg>
把所有样式写在 style 属性里
<svg width="400" height="400" style="border: 1px solid red;">
<rect
x="100"
y="100"
width="200"
height="100"
style="fill: pink;"
/>
svg>
将样式写在 标签里,为标签添加类名或者其他,通过选择器进行样式更改
<style>
.rect {
fill: pink;
}
style>
<svg width="400" height="400" style="border: 1px solid red;">
<rect
x="100"
y="100"
width="200"
height="100"
class="rect"
/>
svg>
.css 文件里,然后在页面中引入该 CSS 文件。CSS 中设置。fill填充颜色fill-opacity填充透明度
0 - 1,0 代表完全透明,1 代表完全不透明。小于 0 的值会被改为 0,大于 1 的值会被改为 1stroke描边颜色stroke-opacity描边的不透明度stroke-width描边的宽度stroke-dasharray虚线描边stroke-dashoffset虚线偏移量stroke-linecap线帽
butt: 平头(默认值)round: 圆头square: 方头
stroke-linejoin拐角
stroke-linejoin 设置,它接收以下属性:miter: 尖角(默认)round: 圆角bevel: 平角
shape-rendering消除锯齿如果你觉得 SVG 在浏览器显示出来的图像有点模糊,那可能是开启了 反锯齿 功能,可以通过 CSS 属性关闭该功能。
shape-rendering: crispEdges;
将该属性设置到对应的 svg 元素上,就会关闭反锯齿功能,突显看起来就会清晰很对,但在某些情况关闭了该功能会让图像看起来有点毛躁的感觉。
如果想开启反锯齿功能,可以这样设置:shape-rendering: geometricPrecision;