kul*_*pae 40
我正在寻找一种方法将<g>元素浮动到宽度= 100%的svg文件的右侧.因此,人们可以缩放图像,我的<g>元素会粘在右边而不会缩放.
这是我发现的:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<svg xmlns="http://www.w3.org/2000/svg"
xmlns:xlink="http://www.w3.org/1999/xlink"
xmlns:ev="http://www.w3.org/2001/xml-events"
version="1.1"
baseProfile="full"
width="100%"
height="100%">
<svg viewBox="0 0 300 300" width="100%" height="300px"
preserveAspectRatio="xMaxYMin meet">
<g transform="skewX(45)" style="fill:red;">
<rect x="0" y="0" height="100%" width="20px" />
<rect x="270" y="0" height="100%" width="20px" />
</g>
</svg>
</svg>
Run Code Online (Sandbox Code Playgroud)
诀窍是使用<svg>标签,放置元素,你想要坚持右边框.然后你告诉<svg> -tag不要缩放内部元素并移动它们,使得x值最大,y最小(xMaxYMin)
preserveAspectRatio="xMaxYMin meet"
Run Code Online (Sandbox Code Playgroud)
以同样的方式你可以集中它......
来源:http: //www.w3.org/TR/SVG/coords.html#ViewBoxAttribute
小智 13
我有同样的问题,最初喜欢kulpae的答案.但问题是,我试图在SVG中创建一个滚动式界面,左对齐按钮用于向左滚动,右对齐按钮用于向右滚动,内部(viewBoxed)svg在kulpae中示例将占据滚动条的整个宽度,因此使滚动条的内容不受接收点击事件的影响.
我的解决方案使用了一个100%x定位的嵌套svg元素,按钮的x位置为负数:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<svg id="mainSvg" xmlns="http://www.w3.org/2000/svg" version="1.1"
width="100%" height="100%"
xmlns:xlink="http://www.w3.org/1999/xlink">
<svg id="rightAlign" x="100%" y="0" width="0" height="200" style="overflow: visible;">
<rect id="rightBtn" width="50" height="200" x="-50" y="0" fill="#ff0000"></rect>
</svg>
<svg id="leftAlign" x="0" y="0" width="0" height="200" style="overflow: visible;">
<rect id="leftBtn" width="50" height="200" x="0" y="0" fill="#ff0000"></rect>
</svg>
</svg>
Run Code Online (Sandbox Code Playgroud)
Ste*_*ger 10
Necromancing.preserveAspectRatio
的各种对齐方式:
左上方
preserveAspectRatio="xMinYMin meet"
Run Code Online (Sandbox Code Playgroud)
右上:
preserveAspectRatio="xMaxYMin meet"
Run Code Online (Sandbox Code Playgroud)
左下方
preserveAspectRatio="xMinYMax meet"
Run Code Online (Sandbox Code Playgroud)
右下
preserveAspectRatio="xMaxYMax meet"
Run Code Online (Sandbox Code Playgroud)
例:
<svg xmlns="http://www.w3.org/2000/svg"
viewBox="0 0 2560 1600" preserveAspectRatio="xMaxYMin meet">
Run Code Online (Sandbox Code Playgroud)