SVG 坐标

没有指定单位默认为px

viewport

viewport​​​​​​​是 SVG 图像的可见区域。一个 SVG 图像在逻辑上可以是你想要的无限制的宽度和高度,但一次只能看到svg空间的特定部分。这个当前可见的区域称为viewport。

您可以使用元素的widthheight属性指定视口的大小<svg>。下面是一个例子:

<span style="background-color:#f0f0f0"><span style="color:#000000"><svg width="500" height="300"></svg>
</span></span>

此时viewport的左上角刚好是svg空间的(0,0),右下角刚好是(width, height)。

svg画布上元素的默认单位为px。

那么viewbox又是什么呢?

如果你想重新定义没有单位的坐标在<svg>内的含义。您可以使用该viewBox属性执行此操作。下面是一个例子:

<span style="background-color:#f0f0f0"><span style="color:#000000"><svg width="500" height="200" <strong>viewBox="0 0 50 20"</strong> ><rect x="20" y="10" width="10" height="5"style="stroke: #000000; fill:none;"/></svg>
</span></span>

本示例创建<svg>一个宽度为 500 像素、高度为 200的元素。 的viewBox属性<svg>包含四个值。这些值定义了<svg>元素的viewbox。含义分别是视图框的x y width height

在这种情况下,视图框开始于(0,0),并且具有50宽*20高。这意味着,<svg>元素内部的500 x 200 像素空间的值,使用从0,0 到50,20的坐标系表示。换句话说,<svg>内部形状的坐标中的每 1 个单位对应于宽度的 500/50 = 10 个像素,高度的 200/20 = 10 个像素。这就是为什么 x 位置为 20,y 位置为 10 的矩形实际上位于200,100,其宽度 (10) 和高度 (5) 对应于 宽100 像素和 高50 像素。

其它文献解释:

The viewBox attribute defines the position and dimension, in user space, of an SVG viewport.

The value of the viewBox attribute is a list of four numbers:

min-xmin-ywidth and height. The numbers separated by whitespace and/or a comma, which specify a rectangle in user space which is mapped to the bounds of the viewport established for the associated SVG element (not the browser viewport).

SVG 图形的viewport由 viewBox 属性以及 svg 标签中的宽度和高度属性指定。

如果不指定 widthheight,SVG 元素会占用可用的空间(就像 HTML 元素一样)。

如果没有给出测量单位,则显示系统的单位适用 - 像素适用于显示器上的浏览器。

<svg 宽度 = "1000" 高度 = "500">...
</svg>

SVG宽度高度也可以 - 类似于 CSS - 以 em、ex、pt、cm、mm 和百分比指定。

SVG 坐标系的零点位于左上角。

下图是width="48" height="48" viewBox="0 0 48 48"的svg渲染效果

同样的内容把viewBox减半后,下图是width="48" height="48" viewBox="0 0 24 24"的svg渲染效果

0,0 代表viewport的左上坐标,24,24代表viewport在svg坐标系中的宽和高。svg元素的width="48" height="48"则是这个viewport放到用户坐标系中,被拉伸(映射)后的坐标。

下面的蓝框就指定了viewbox视窗

如果我们用负值偏移图形的原点,则对象将向右/向下移出 viewBox。

增加宽度/高度会使对象变小,减少宽度/高度会放大 viewBox 中的对象。

SVG 坐标和 viewBox相关推荐

  1. 理解SVG的viewport,viewBox【1】

    2019独角兽企业重金招聘Python工程师标准>>> viewport表示的是svg可视区大小,具体体现就是svg元素的width和height属性值所圈起来的区域: <sv ...

  2. SVG 基本知识:SVG 放大缩小之 viewbox 初探 (1)

    最近做了一个关于SVG的应用的技术分享网站svgtrick.com,会同步一些文章到这里来,更多的可以去网站看看. 接触过SVG都知道,SVG有自己的一套坐标视窗系统,理解它对于在SVG的使用,特别是 ...

  3. xml矢量图:svg的viewBox和vml的coordsize决定的虚坐标系简说

    SVG: viewBox是SVG的虚坐标系,比VML的简单不少. 为根节点svg元素加上viewBox属性后,在svg下的各图形元素的大小和位置都是按viewBox限定的坐标,而不是页面的实际坐标. ...

  4. SVG脚本编程简介(转)

    SVG脚本编程简介 本文主要介绍SVG的脚本编程,并分别给出放大.缩小,查询,鼠标事件等实例. 一.            SVG简介 SVG,全称为Scalable Vector Graphics( ...

  5. 在 vue 中使用 SVG 建立图标系统并且使用

    首先我们先来学一下 svg 标签的基础知识,参考了阮一峰大神的网络日志,链接:http://www.ruanyifeng.com/blog/2018/08/svg.html SVG 全称是可缩放矢量图 ...

  6. SVG标准解读-几何图形-图案填充-核心要点

    文章目录 1.SVG概述 2.svg标签 2.1.视图(viewport)和单位 2.2.坐标系统 2.3.viewBox 3.g标签 4.公共属性 5.几何图形 5.1 绘制直线 5.2 绘制矩形 ...

  7. SVG开发包, 20 个有用的 SVG 工具,提供更好的图像处理

    20 个有用的 SVG 工具,提供更好的图像处理 SVG 现正在 Web 设计领域变得越发流行, 你可以使用 Illustrator 或者 Inkscape 来创建 SVG 图像. 但当进行 Web ...

  8. SVG实例入门与动画实战

    前言 在日常开发过程中,我们或多或少都接触过SVG,有可能是用它来画一些简单的图形,有可能是使用它来构建工程的字体文件库,甚至是用它来绘制一些复杂的可视化模块.本文会详细介绍SVG的基本图形以及常见的 ...

  9. svg配合css3动画_如何使用CSS制作节日SVG图标动画

    svg配合css3动画 正是这个季节,因此在本教程中,我将逐步创建一些CSS动画,以假日为主题的SVG图标. Iconmelon上有一些很棒的图标,该网站上有许多免费的矢量图标集,可让您尽其所能 . ...

  10. HTML5矢量图形SVG

    1.1.1 什么是SVG? SVG 意为可缩放矢量图形(Scalable Vector Graphics). SVG是一种使用xml技术描述图形的语言,使用 XML 格式定义图像. SVG指可伸缩矢量 ...

最新文章

  1. Python ljust()方法
  2. 13个JavaScript图表图形绘制插件
  3. HTTP协议与TCP/IP协议的关系
  4. SAP-ABAP程序发送邮件
  5. 虚函数和抽象函数的区别
  6. 让博客园博客中的图片支持fancybox浏览
  7. 教辅的组成(网络流果题 洛谷P1231)
  8. Android自定义控件ImageViwe(一)——依据控件的大小来设置缩放图片显示
  9. spark RadixSort基数排序源码实现
  10. (40)Gulp中使用BootStrap
  11. Linux基础——搭建自己的云计算, 多电脑共享你云端文件
  12. SQLi-LABS Page-4 (Challenges) Less-54-Less-65
  13. 首届全国大学生工程训练综合能力竞赛圆满落幕
  14. java菜鸟教程100_JAVA/JSP学习系列之一
  15. java 造数据_java测试造数据神器JavaFaker
  16. ubuntu编辑只读文件_Ubuntu linux vim 修改只读文件 修改Apache2端口号 ports.conf
  17. 论文阅读:[2019 TSE] A Theoretical and Empirical Analysis of Program Spectra Diagnosability
  18. 博弈论一 [ 巴什博奕 ]
  19. 1 dB压缩点_噪声系数_小信号非线性的数学描述
  20. C语言关键字浅析-return

热门文章

  1. [Publish AAR To Maven] 注册 Maven 仓库 sonatype.org 账户
  2. pod镜像拉取策略、重启容器策略
  3. 三菱伺服调试软件_三菱伺服驱动器故障维修技术强悍
  4. mysql数据库rpm包安装_Linux rpm包安装MySQL数据库问题总结
  5. linux备份文件_aptclone:备份已安装的软件包并在新的 Ubuntu 系统上恢复它们 | Linux 中国...
  6. 四元数和旋转_使用OpenCV的四元数
  7. mysql 占比函数_MYSQL 八大优化方案
  8. oracle增量备份level0,Oracle备份类型level0、level1,增量、差异备份
  9. Spring框架的本质:1Spring框架的起源
  10. (3)I/O流对象-----复制图片/文件/视频的几种I/O流方式