SVG 提供了很多描边(stroke)属性,一些常用的有如下几个:

  • stroke
  • stroke-width
  • stroke-linecap
  • stroke-linejoin
  • stroke-dasharray

所有这些属性可以被应用在任意线条、文本以及元素外框上。

SVG stroke 属性

<stroke> 属性用来定义线条、文本或元素轮廓(outline)的颜色。

SVG stroke-width 属性

<stroke-width> 属性用来定义线条、文本或元素轮廓的宽度。

SVG stroke-linecap 属性

<stroke-linecap> 属性用来定义线帽,也就是线条两端的外观。

可取值为:butt | round | square | inherit

代码示例如下:

<svg width="12cm" height="2cm" viewBox="0 0 1200 200" version="1.1" xmlns="https://www.w3.org/2000/svg" xmlns:xlink="https://www.w3.org/1999/xlink"><desc>三种线帽示意图</desc><rect x="1" y="1" width="1198" height="198" fill="none" stroke="blue" /><style type="text/css"><![CDATA[ .thick {stroke: black;stroke-width: 70}.thin {stroke: #ffcccc;stroke-width: 5}text {text-anchor: middle;font-size: 50;font-family: Verdana}circle {fill: #ffcccc;stroke: none}]]></style><defs><line id="line1" x1="-125" x2="125" y1="0" y2="0" fill="none" /><g id="circles"><circle id="circle1" cx="-125" cy="0" r="8" /><circle id="circle2" cx="125" cy="0" r="8" /></g></defs><g transform="translate(200,75)"><use class="thick" xlink:href="#line1" stroke-linecap="butt" /><use class="thin" xlink:href="#line1" /><use xlink:href="#circles" /><text y="90">'butt' cap</text></g><g transform="translate(600,75)"><use class="thick" xlink:href="#line1" stroke-linecap="round" /><use class="thin" xlink:href="#line1" /><use xlink:href="#circles" /><text y="90">'round' cap</text></g><g transform="translate(1000,75)"><use class="thick" xlink:href="#line1" stroke-linecap="square" /><use class="thin" xlink:href="#line1" /><use xlink:href="#circles" /><text y="90">'square' cap</text></g>
</svg>

上述代码中使用了svg的框架元素如<g>、内置样式以及内部引用(xlink:href),我们可以暂时不关心。后面会详细讲解。 目前我们只需要关心<line>元素及其stroke相关属性(上例中使用了stroke、stroke-width、和stroke-linecap)即可。

SVG stroke-linejoin 属性

<stroke-linejoin> 属性用来定义线条连接类型,也就是两个线条交接点的外观。

可取值为:miter | round | bevel | inherit

代码示例如下:

<svg width="12cm" height="3.5cm" viewBox="0 0 1200 350" version="1.1"xmlns="https://www.w3.org/2000/svg" xmlns:xlink="https://www.w3.org/1999/xlink"><desc>Example linecap - demonstrates three stroke-linecap values</desc><rect x="1" y="1" width="1198" height="348" fill="none" stroke="blue" /><style type="text/css"><![CDATA[.thick { stroke:black; stroke-width:70 }.thin { stroke:#ffcccc; stroke-width:5 }text { text-anchor:middle; font-size:50; font-family:Verdana }circle { fill:#ffcccc; stroke:none }]]></style><defs><path id="path1" d="M -125,150 L 0,0 L 125,150" fill="none" /><circle id="circle1" cx="0" cy="0" r="8"/></defs><g transform="translate(200,75)"><use class="thick" xlink:href="#path1" stroke-linejoin="miter"/><use class="thin" xlink:href="#path1"/><use xlink:href="#circle1"/><text y="230">'miter' join</text></g><g transform="translate(600,75)"><use class="thick" xlink:href="#path1" stroke-linejoin="round"/><use class="thin" xlink:href="#path1"/><use xlink:href="#circle1"/><text y="230">'round' join</text></g><g transform="translate(1000,75)"><use class="thick" xlink:href="#path1" stroke-linejoin="bevel"/><use class="thin" xlink:href="#path1"/><use xlink:href="#circle1"/><text y="230">'bevel' join</text></g>
</svg>

SVG stroke-dasharray 属性

<stroke-dasharray> 属性用来创建虚线。

代码如下:

<svg height="80" width="300"><g fill="none" stroke="black" stroke-width="4"><path stroke-dasharray="5,5" d="M5 20 l215 0" /><path stroke-dasharray="10,10" d="M5 40 l215 0" /><path stroke-dasharray="20,10,5,5,5,10" d="M5 60 l215 0" /></g>
</svg>

代码解释如下:

  • stroke-dasharray的语法为:逗号或空格分隔的长度(或百分比)数值列表
  • 第一条虚线为长度5的线段+长度5的空白,如此反复,从起点X坐标5绘制到215。
  • 第二条虚线类似,小段线段的长度为10。
  • 第三条线型复杂一些:线段20+空白10+线段5+空白5+线段5+空白10,如此反复,绘制出整条虚线。

前述章节,我们讲解了SVG的基本概念、技术特点和基本形状元素的使用。

到此为止,本课程系列中的入门教程已经全部结束。后续将开始我们的进阶之旅,从CSS3进阶开始,因为CSS3的动画特性应用最为广泛。

12.定义线条的样式相关推荐

  1. html5点线的设置,html5 Canvas画图教程(2)—画直线与设置线条的样式如颜色/端点/交汇点...

    如果你还不知道canvas是什么,可以看看. 在学画画的时候,线条是最基本的了,而线条的连接可以组成任何图形.在canvas中也是如此. 在开始之前我们先拿出画布和画笔: 复制代码代码如下: var ...

  2. php 画直线,html5 Canvas实现画直线与设置线条的样式

    这篇文章主要介绍了关于html5 Canvas实现画直线与设置线条的样式,有着一定的参考价值,现在分享给大家,有需要的朋友可以参考一下 在学画画的时候,线条是最基本的了,而线条的连接可以组成任何图形. ...

  3. 在html5绘制直线的两个方法,html5 Canvas画图教程(2)—画直线与设置线条的样式如颜色/端点/交汇点...

    如果你还不知道Canvas是什么,可以看看上一篇. 在学画画的时候,线条是最基本的了,而线条的连接可以组成任何图形.在Canvas中也是如此. 在开始之前我们先拿出画布和画笔: 复制代码代码如下: v ...

  4. 可以对同一个html元素定义不同的样式,CSS的多种选择器的使用.ppt

    什么是样式选择器是样式选择器当定义一条样式规则时必须指定受这条样式规则作用的网页元素在一条规则中定义的网页元素就是选择器也就是选择该样式规则作用于的网页元素选择器有标签就用选择器选择符就是赋予内部或外 ...

  5. 在网页中如何定义鼠标的样式

    在网页中如何定义鼠标的样式 作者:闪吧   类型:原创   来源:闪吧 style="PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTO ...

  6. frontpage css,在Frontpage 中定义网页CSS样式

    [点评] 相关网页设计频道网页设计培训网页设计网上培训综合辅导说明:目前Frontpage的最新版本是FrontpageXP(Frontpage 2003),本文是以Frontpage2000讲述的, ...

  7. frontpage css,在Frontpage 中定义网页CSS样式

    您可能感兴趣的话题: FrontPage 核心提示:说明:目前Frontpage的最新版本是FrontpageXP(Frontpage 2003),本文是以Frontpage2000讲述的 说明:目前 ...

  8. php网页制作添加线条,html5Canvas实现画直线与设置线条的样式-

    这篇文章主要介绍了关于html5 Canvas实现画直线与设置线条的样式,有着一定的参考价值,现在分享给大家,有需要的朋友可以参考一下 在学画画的时候,线条是最基本的了,而线条的连接可以组成任何图形. ...

  9. setp的好处是一次性可以设置多根线条的样式

    现在我们添加图后,没有指定x轴代表什么,y轴代表什么,以及这个图的标题是什么.因此以下我们通过一些属性来设置一下. 设置线条样式: 使用plot方法:plot方法就是用来绘制线条的,因此可以在绘制的时 ...

最新文章

  1. Java Review - 并发编程_PriorityBlockingQueue原理源码剖析
  2. 图像归一化处理 相同像素_图像处理学习笔记(九)——灰度直方图及其均衡化(理论篇)...
  3. 测试功能范围_我们该如何制定手机浏览器菜单改版测试范围呢?
  4. how to debug Opportunity change implementation - entry onOKParticipantDialog
  5. 中blur函数_Comonad在图像处理中的应用
  6. 【神经网络】给初学者们讲解人工神经网络(ANN)
  7. Python 安装路径, dist-packages 和 site-packages 区别
  8. php如何实现自动加载mp3,如何简单的实现php自动加载
  9. 学习笔记(02):程序员的数学:微积分-常用导数(二):最常用到的技巧
  10. vue函数@click.prevent使用纪要
  11. 用商汤的mmdetection 学习目标检测中的 Recalls, Precisions, AP, mAP 算法 Part1
  12. 【顿悟】会者定离,一期一祈,勿怀忧也,世相如是.
  13. 基于Linux系统搭建智能DNS
  14. Tomcat部署Web项目
  15. Python-文件存储
  16. JZOJ5677. 【GDOI2018Day2模拟4.21】纽约
  17. 7-112 斐波那契数列 (10 分)
  18. 软件需求工程 高校教学平台 需求工程计划
  19. 技术人员如何快速提高管理能力和领导力
  20. Spark jar not loaded. Offending class: javax/servlet/Servlet.class

热门文章

  1. 黑白手绘论文答辩PPT模板
  2. Debian10的错选键盘布局的两种处理
  3. 落,心扬。凭窗听雨,仿佛一
  4. Android-音频播放器—MediaPlayer
  5. python语言程序设计 梁勇 下载_梁勇python语言程序设计
  6. 解决惠普电脑WLAN消失
  7. 计算机电源能输出,选择计算机电源到底为什么不能只看重额定功率呢?
  8. 2022年新年贺词 中日对照
  9. 核爆级新闻,13000亿!目瞪口呆!
  10. 基于 Serverles 打造如 Windows 体验的个人专属家庭网盘