svg viewbox和preserveAspectRatio理解

svg-viewbox和preserveAspectRatio理解(分开理解)

1、viewBox参数

viewBox=“x, y, width, height” // x:左上角横坐标,y:左上角纵坐标,width:宽度,height:高度

实例:
    <svg width="500" height="200" viewBox="0 0 50 20" style="border: 1px solid #234567;">
        <rect x="20" y="10" width="10" height="5"
              style="stroke: #000000; fill:none;"/>
    </svg>
实例解析:
    此示例创建一个<svg>为500像素宽和200像素高,宽度元素的的viewBox属性包含四个坐标。这些坐标就定义了<svg>的viewBox属性。

    在这种情况下,View Box跨度从0,0到50,20。这意味着,500 x 200像素 <svg>元素内部使用一个坐标系,它从0,0 到50,20。换言之,图形中使用的坐标,每1个单位,在<svg>对应于宽度500/50 = 10个像素,而在高200/20 = 10个像素。这就是为什么x轴为20及y轴为10的位置的矩形是真正位于(200,100),其宽度(10)和高度(5)对应于100个像素和50个像素。

2、preserveAspectRatio保持宽高比

2-1、第一个值指定的对齐由两部分组成(第一部分指定的x对齐和第二部分指定的y对齐。)

值 描述
• xMin 对齐View Box最小x轴的值与Viewport的左边缘。
• xMid 对齐View Box的x轴的中心与Viewport的中心x轴坐标。
• xMax 对齐View Box最大x轴的值与Viewport的右边缘。
• YMin 对齐View Box最小y轴的值与Viewport的顶部边缘。
• YMid 对齐View Box的y轴的中心与Viewport的中心y轴坐标。
• YMin 对齐View Box最大y轴的值与Viewport的底部边缘。

2-2、第二个值可以采取三种不同的值(宽高比如何将被保留):

值 描述
• meet 保持宽高比和比例视图框,以适应内视口。
• slice 保留宽高比,任何不适合Viewport宽高比的图像的会被切掉。
• none 不保留宽高比。缩放图像以View Box充满完全适应Viewport。比例会被扭曲。
在第二部分preserveAspectRatio属性值附加到第一部分,以空格分隔。

代码调试:

<!DOCTYPE html>
<html>
    <head>
        <title>ViewBox 代码调试</title>
        <style>
            body {
   
                background: #eee;
            }
            svg {
   
                position: absolute;
                border: 1px solid green;
                width: 300px;
                height: 200px;
                left: 50%;
                top: 50%;
              
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值