Я хочу разместить вложенный SVG без полей. В этой ситуации я могу обнаружить, что поля слишком много, и если я уменьшу высоту, форма исчезнет. Как я могу решить эту проблему?
<svg width = "300" height = "100" viewBox = "0 0 300 100">
<svg>
<line x1 = "10" x2 = "275" y1 = "100" y2 = "100" fill = "grey"/>
</svg>
<svg>
<line
x1 = "10"
x2 = "275"
y1 = "100"
y2 = "100"
fill = "green"
/>
</svg>
</svg>






Ваши элементы <line> размещаются с некоторыми полями/отступами из-за их свойств x/y:
<line x1 = "10" x2 = "275" y1 = "100" y2 = "100" fill = "grey"/>
переводится как:
Кроме того, свойство <fill> не повлияет на <line> элементы.
Вы устанавливаете цвета обводки с помощью атрибута stroke.
Если вам нужно, чтобы ваш вложенный svg был растянут до ширины родительского svg, вам также нужно будет установитьpreserveAspectRatio = "none" и width:100%:
.svg-parent {
border: 1px dotted red;
}
.svg-parent-responsive {
width: 100%;
}
.line {
stroke-width: 5;
stroke: #000;
vector-effect: non-scaling-stroke;
}
.line-green {
stroke: green;
}
.line-gray {
stroke: gray;
}
.resize {
resize: both;
overflow: auto;
border: 1px solid #ccc;
padding: 1em;
}<div class = "resize">
<svg class = "svg-parent" width = "300px" height = "100px" viewBox = "0 0 300 100">
<svg>
<line class = "line line-gray" x1 = "0" x2 = "100%" y1 = "50" y2 = "50" />
</svg>
<svg>
<line class = "line line-green" x1 = "0" x2 = "100%" y1 = "75" y2 = "75" />
</svg>
</svg>
<svg class = "svg-parent svg-parent-responsive" preserveAspectRatio = "none" height = "100" viewBox = "0 0 300 100">
<svg>
<line class = "line line-gray" x1 = "0" x2 = "100%" y1 = "50" y2 = "50" />
</svg>
<svg>
<line class = "line line-green" x1 = "0" x2 = "100%" y1 = "75" y2 = "75" />
</svg>
</svg>
</div>
<p>Resize me</p>