Почему этот svg обрезается и не масштабируется?
Я новичок в SVG и немного удивлен, что этот пример обрезан и не масштабируется? Чего не хватает, чтобы сделать его масштабируемым/значительным, используя ширину/высоту в элементе svg?
<?xml version="1.0" standalone="no"?>
<!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"
version="1.1"
width="200px"
height="200px"
viewBox="0 0 400px 400px">
<g fill-opacity="0.7" stroke="black" stroke-width="0.1cm">
<circle cx="200px" cy="60px" r="100" fill="red"
transform="translate(0,50)" />
<circle cx="200px" cy="60px" r="100" fill="blue"
transform="translate(70,150)" />
<circle cx="200px" cy="60px" r="100" fill="green"
transform="translate(-70,150)" />
</g>
</svg>
1 ответов
потому что, если ваш viewBox недействителен, окно просмотра определяется шириной и высотой самого внешнего элемента (в вашем случае элемент SVG в 200x200px). Поскольку ваш контент переполняется, он обрезается.
определив допустимое поле просмотра 400x400, вы дали содержимому достаточно места внутри поля просмотра, но все это было масштабировано, чтобы поместиться внутри элемента SVG. ViewBox-это своего рода виртуальное пространство, отображаемое на реальное пространство.
проблема довольно запутана. Этот viewport и viewbox-это разные вещи. Спецификация охватывает оба подробно:http://www.w3.org/TR/SVG/coords.html#ViewBoxAttribute