Appearance
介绍一些写好SVG的小技巧:
How to Scale SVG - Amelia Bellay@codepen.io
讲述如何控制SVG的缩放
SVG的几种用法:放在
<img>元素中;放到<object> | <iframe>元素中;内联直接使用<svg>viewBox特性的重要性- 定义图片的宽高比(
aspect ratio) - 它定义了如何缩放SVG内使用的所有长度和坐标,以适应可用的总空间
- 它定义了SVG用户坐标系统的原点
- 定义图片的宽高比(
preserveAspectRatio特性:- 它只有定义了
viewBox特性,这个特性才能生效 - 它描述当viewBox的宽高比和svg viewport的宽高比不一致时,图片应该如何进行缩放😎
- 它类似于CSS中的
background-size+background-postion preserveAspectRatio="none"允许SVG像JPG,PNG这样栅格图片一样去缩放拉伸
- 它只有定义了
如果只给svg提供
viewBox&width & height特性,而不提供preserveAspectRatio属性,它默认是xMidYMid meet,即图片会居中,并且不会扭曲,然后根据width & height进行缩放📄🌰 将定义了
viewBox的svg放到<img src="xxx.svg">中,图片会根据viewBox中定义的宽高比进行自动缩放🌰 将svg用作背景图时,为了图片根据容器宽度变化,可以使用
padding-bottom的方式保持宽高比,以使高度根据高度来适配🎉🌰 内联的方式使用
<svg viewBox="">,只需要设置width或者height中的一个特性,没有设置的默认为auto,这样,它便会自适应,如果width和height都没有设置,这默认为填充整个容器宽度🌰 如果想要像JPG,PNG这样栅格图片一样去缩放拉伸,可以同时设置
viewBox+preserveAspectRatio="none"🌰🚀 使用嵌套
<svg>的方式,同时包含多个<svg>,然后定义不同的viewBox&preserveAspectRatio得到不同的效果,使得有的svg拉伸扭曲,有的保持其宽高比
2023年01月11日18:55:25