Я пытаюсь создать SVG, который имеет элемент в каждом углу. Я хочу, чтобы svg был масштабируемым, в то время как угловые элементы сохраняют свой размер и соотношение сторон ... при этом придерживаются углов.Поместите элемент на каждый угол независимо от размера svg
Я чувствую, что с большим количеством javascript fiddling это можно сделать. Но я действительно чувствую, что это можно сделать с помощью некоторого умного CSS и хорошего понимания того, как работает SVG.
Это пример того, как я ожидаю, что он сработает: Demo Fiddle. Это всего лишь html и css.
div { width:40px; height:40px; position:absolute;
&:nth-of-type(1) { top:0; left:0; background-color:red;}
&:nth-of-type(2) { top:0; right:0; background-color:blue;}
&:nth-of-type(3) { bottom:0; left:0; background-color:green;}
&:nth-of-type(4) { bottom:0; right:0; background-color:yellow;}
}
Это где я получил, прежде чем, наконец, прийти сюда: Fiddle
<svg version="1.1" id="circle" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" width="100%" height="100%" viewBox="0 0 100 100" xml:space="preserve" preserveAspectRatio="none">
<svg id="top-left" width="100%" height="100%" viewBox="0 0 100 100" preserveAspectRatio="xMinYMin meet">
<rect width="20" height="20" fill="red" style="y:0; x:0"/>
</svg>
<svg id="top-right" width="100%" height="100%" viewBox="0 0 100 100" preserveAspectRatio="xMaxYMin meet">
<rect width="20" height="20" fill="blue" style="y:0; x:calc(100% - 20px)"/>
</svg>
<svg id="bottom-left" width="100%" height="100%" viewBox="0 0 100 100" preserveAspectRatio="xMaxYMax meet">
<rect width="20" height="20" fill="green" style="y:calc(100% - 20px); x:0"/>
</svg>
<svg id="bottom-right" width="100%" height="100%" viewBox="0 0 100 100" preserveAspectRatio="xMinYMax meet">
<rect width="20" height="20" fill="yellow" style="y:calc(100% - 20px); x:calc(100% - 20px)"/>
</svg>
</svg>
Любое понимание будет значительно appriciated.
Cheers,
Марк