用户单位和像素之间有什么区别吗?

时间:2017-06-08 16:22:06

标签: html svg

我一直在读几篇关于SVG的文章,这些文章明确区分了使用和不使用单位(最后一种情况甚至有自己的名称),例如

<!-- the viewport will be 800px by 600px -->
<svg width="800" height="600">
    <!-- SVG content drawn onto the SVG canvas -->
</svg>
     

在SVG中,可以使用或不使用单位标识符设置值。一个   据说使用用户单元在用户空间中指定无单位值。   如果在用户单位中指定了值,则假定该值为   相当于相同数量的“px”单位。这意味着   上例中的视口将呈现为800px×600px   视口。

     

您还可以使用单位指定值。支持的长度单位   SVG中的标识符是:em,ex,px,pt,pc,cm,mm,in和   百分比。

source

  1. 省略单位并将其设置为px
  2. 之间是否存在实际差异?
  3. 我可以设置例如mm到处都是为了避免含糊不清,或者我最终会得到不同的结果?

    <svg width="800mm" height="600mm">
    

1 个答案:

答案 0 :(得分:0)

免责声明:以下是纯粹的猜测(上周我只学习了SVG的基础知识)但是我分享它因为我相信它可以帮助其他人同样怀疑我希望它不包含严重错误。

SVG画布基本上是一个心理概念 - 一个无限平面,你可以使用笛卡尔坐标放置东西并四处移动。它与在一张方格纸中描绘形状并没有太大的不同,在这种方格纸中,您绘制了一个十字形以将任意点标识为坐标原点,除了笔记本不是无限的。就像tou在工作表中绘制一个3平方半径的圆圈一样,你并不在意这些方块代表12毫米,你可以使用无单位尺寸在SVG画布中绘制形状,因为它与确切的物理尺寸无关紧要他们代表。 SVG规范使用术语“用户单位”来表达这个想法。

在两种情况下使用实际单位才有意义:

  1. 当我们的虚拟用户单元需要与现实世界交互时,例如,画布将在计算机显示器中打印。

  2. 当我们希望图表中的元素以不扩展的方式定义时,既不向上也不向下,例如无论我们如何调整其所属徽标的大小,都要围绕一封需要看起来相同的字母。

  3. 正是在这种情况下,更具体地说是#1,当px等价派上用场时。当我们需要渲染图形或进行涉及实际单位的计算时,无单位尺寸被解释为像素。我们可以将它视为默认值,因为我们可以渲染任何尺寸的画布,并且在任何情况下,像素在高分辨率显示和内置缩放的日子里不再是物理像素。

    而且,对于所有这些,最好只省略SVG代码中的单位。在一般基础上添加它们只会使代码不必要地冗长。