SVG polygon points with percentage units support

前端 未结 2 723
温柔的废话
温柔的废话 2020-12-08 06:21

I am trying to have a fluid SVG canvas that can resize easily. So far I\'m using percentages everywhere. However it seems like SVG polygon and path

相关标签:
2条回答
  • You can group the elements together with g and use a transform:

    <svg width='90%' height='90%' style='background-color: whitesmoke'>
        <rect x='40%' y='40%' width='25%' height='25%' />
    
        <g transform="scale(0.4 0.4)">
            <polygon points="0,0 0,100 30,20 30,0"/>
            <polygon points="30,0 30,20 60,0 60,0"/>
            <polygon points="60,0 60,0 90,30 90,0"/>
        </g>
    </svg>
    
    0 讨论(0)
  • By using viewBox and a container element (of whatever size) I think you can achieve the effect you're looking for: http://jsfiddle.net/davegaeddert/WpeH4/

    <div id="svg-container" style="width:100%;height:100%;">
        <svg width='100%' height='100%' viewBox="0 0 100 100" preserveAspectRatio="none" style='background-color: whitesmoke'>
            <rect x='40%' y='40%' width='25%' height='25%' />
    
            <polygon points="0,0 0,100 30,20 30,0" />
            <polygon points="30,0 30,20 60,0 60,0" />
            <polygon points="60,0 60,0 90,30 90,0" />
        </svg>
    </div>
    

    If you give the viewBox a size of 0 0 100 100 then the points can be written like percentages and the shape will scale with the svg.

    0 讨论(0)
提交回复
热议问题