Я ожидаю закругленные углы в верхней, правой, нижней и левой точках ниже многоугольника. Кажется, он ничего не делает для атрибута stroke-linejoin
#container {
display: block;
width: 600px;
height: 400px;
}
.poly {
fill: #4d4d4d;
stroke-linejoin: round;
stroke-width: 5px;
stroke: #19f6e8;
}
<div id="container">
<svg width="100%" height="100%">
<svg width="50%" height="50%" viewBox="0 0 100 100" preserveAspectRatio="none">
<polygon class="poly" points="0,50 50,0 100,50 50,100" />
</svg>
</svg>
</div>
2 ответа
Ваши внешние углы фактически закруглены, но контур находится за пределами вашего поля просмотра (потому что он распределяется равномерно по обе стороны от фактической линии многоугольника) и поэтому обрезается. Если вы переместите точки на 10 единиц от границ области просмотра, вы увидите округление (и увеличение stroke-width
помогает увидеть его еще лучше).
document.querySelector('#toggle').addEventListener('click', () => {
var polyEl = document.querySelector('polygon.poly');
polyEl.classList.toggle('round');
});
#container {
display: block;
width: 600px;
height: 400px;
}
.poly {
fill: #4d4d4d;
stroke-width: 15px;
stroke: #19f6e8;
}
.poly.round {
stroke-linejoin: round;
}
<button id="toggle">toggle stroke-linejoin</button>
<div id="container">
<svg width="80%" height="80%">
<svg width="50%" height="50%" viewBox="0 0 100 100" preserveAspectRatio="none">
<polygon class="poly round" points="10,50 50,10 90,50 50,90" />
</svg>
</svg>
</div>
Ваш рисунок выходит за пределы холста. Посмотрите, что произойдет, когда вы сделаете viewBox больше ...
Штрихи нарисованы наполовину внутри линии и наполовину снаружи.
#container {
display: block;
width: 600px;
height: 400px;
}
.poly {
fill: #4d4d4d;
stroke-linejoin: round;
stroke-width: 5px;
stroke: #19f6e8;
}
<div id="container">
<svg width="100%" height="100%">
<svg width="50%" height="50%" viewBox="-5 -5 110 110" preserveAspectRatio="none">
<polygon class="poly" points="0,50 50,0 100,50 50,100" />
</svg>
</svg>
</div>
Новые вопросы
html
HTML (язык разметки гипертекста) - это язык разметки для создания веб-страниц и другой информации, отображаемой в веб-браузере. Вопросы, касающиеся HTML, должны включать минимальный воспроизводимый пример и некоторое представление о том, чего вы пытаетесь достичь. Этот тег редко используется отдельно и часто используется вместе с [CSS] и [javascript].