Новое в JavaScript. И СВГ. Так что да. Любая помощь для этого новичка очень ценится.
Картинка тоже выложена. Это прямоугольник со скругленными углами, но я не могу заставить его расти больше, чем он есть. Как будто он обрезается снизу и справа. Я уверен, что это действительно просто, но это просто полностью заблокировало меня.
В конечном счете, я бы хотел, чтобы этот прямоугольник занимал всю ширину страницы.
Вот мой код:
<!DOCTYPE html>
<html lang = "en">
<head>
<title>POC</title>
<meta charset = "utf-8">
<meta name = "viewport" content = "width=device-width, user-scalable=no, minimum-scale=1.0, maximum-scale=1.0">
<link type = "text/css">
</head>
<body>
<div id = "main">
<svg id = "mySVG" xmlns = "http://www.w3.org/2000/svg" xmlns:xlink = "http://www.w3.org/1999/xlink"></svg>
</div>
<script type = "module">
var svgNS = "http://www.w3.org/2000/svg";
function makeShape1() {
var shape = document.createElementNS(svgNS, "rect");
shape.setAttributeNS(null, "x", 5);
shape.setAttributeNS(null, "y", 5);
shape.setAttributeNS(null, "rx", 5);
shape.setAttributeNS(null, "ry", 5);
shape.setAttributeNS(null, "width", 400);
shape.setAttributeNS(null, "height", 400);
shape.setAttributeNS(null, "fill", "green");
document.getElementById("mySVG").appendChild(shape);
}
makeShape1();
</script>
</body>
</html>
Вам просто нужен viewBox.
Я начал с (5, 5), но вы можете начать с (0, 0), вам придется увеличить ширину и высоту, если вы это сделаете. Например. ViewBox="0 0 410 410"
<!DOCTYPE html>
<html lang = "en">
<head>
<title>POC</title>
<meta charset = "utf-8">
<meta name = "viewport" content = "width=device-width, user-scalable=no, minimum-scale=1.0, maximum-scale=1.0">
<link type = "text/css">
</head>
<body>
<div id = "main">
<svg id = "mySVG" viewBox = "5 5 400 400" preserveAspectRatio = "none"></svg>
</div>
<script type = "module">
var svgNS = "http://www.w3.org/2000/svg";
function makeShape1() {
var shape = document.createElementNS(svgNS, "rect");
shape.setAttributeNS(null, "x", 5);
shape.setAttributeNS(null, "y", 5);
shape.setAttributeNS(null, "rx", 5);
shape.setAttributeNS(null, "ry", 5);
shape.setAttributeNS(null, "width", 400);
shape.setAttributeNS(null, "height", 400);
shape.setAttributeNS(null, "fill", "green");
document.getElementById("mySVG").appendChild(shape);
}
makeShape1();
</script>
</body>
</html>
Размер svg по умолчанию — 300/150. Поскольку вы не указали размер (ширину, высоту) или viewBox(), это размер элемента svg. Между тем прямоугольник имеет ширину и высоту 400 и начинается с x = "5" height = "5". Вам понадобится viewBox как минимум viewBox = "0 0 410 410", чтобы увидеть весь прямоугольник.