У меня есть следующая система:
<html>
<head>
<style>
html, body {
margin: 0;
padding: 0;
overflow: hidden;
}
</style>
</head>
<body>
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 3000 3000">
<defs>
<symbol id="triangle" viewBox="0 0 100 100">
<polygon points="0,100 50,0 100,100" class="triangle" />
</symbol>
<symbol id="tree" viewBox="0 0 100 100">
<use href="#triangle" width="100" height="100" />
</symbol>
</defs>
<use href="#tree" width="200" height="400" x="1000" />
<use href="#tree" width="100" height="100" x="1100" />
</svg>
</body>
</html>
Для следующего:
<use href="#tree" width="200" height="400" x="1000" />
Я бы ожидал, что это будет треугольник, который в два раза больше высоты по ширине (200x400).Но это просто случайный размер, который пропорционален исходному треугольнику 100x100.
Хотите знать, как сделать так, чтобы масштабировать / сжимать изображение, чтобы я мог использовать use
несколько раз, чтобы он показывал разныеВысота деревьев все с одинаковой шириной.
То же самое с созданием символа #rect
, размер которого можно изменять с любой шириной / высотой, и он создает прямоугольник соответствующей формы.Если я попробую следующее, он просто покажет квадрат.
<symbol id="rect" viewBox="0 0 100 100">
<rect width='100' height='100' />
</symbol>
<use href="#rect" width="400" height="300" x="1300" y="1000" />