Я пытаюсь создать границу вокруг квадрата с отрезанным углом.
Я попытался создать это, используя border-image, но у меня возникли некоторые проблемы с получением границы шириной 0,1 рем по всему периметру. граница срезанного угла кажется немного меньше остальных границ. Есть ли способ создать одинаковую ширину вокруг объекта?
вот CSS
.news-card {
position: relative;
padding: 1em;
height:41rem;
width: 30rem;
clip-path: polygon(100% 0, 100% 85%, 80% 100%, 0 100%, 0 0);
border-image: fill 0
conic-gradient(grey 0 0);
&::before {
position: absolute;
z-index: -1;
content: "";
inset-block: 0.1rem;
inset-inline: 0;
clip-path: polygon(100% 0, 100% 85%, 80% 100%, 0 100%, 0 0);
border-image: fill 0/0.1rem/0.1rem 0
conic-gradient(white 0 0);
}
}
вот ссылка на мой код https://codepen.io/Shelas/pen/MWRvNdj
@Paulie_D Вы имеете в виду, что 1rem равен 16px. Это действительно так. Но я думаю, проблема в округлении.






Используйте один clip-path, и вы сможете получить значения из моего генератора: https://css-generators.com/custom-corners/#4
.box {
position: relative;
height: 300px;
}
.box:before {
content: "";
position: absolute;
inset: 0;
background: red;
clip-path: polygon(0 0,100% 0,100% calc(100% - 80px),calc(100% - 80px) 100%,0 100%,0 0,.1rem .1rem ,.1rem calc(100% - .1rem),calc(100% - 80px - 0.04rem) calc(100% - .1rem),calc(100% - .1rem) calc(100% - 80px - 0.04rem),calc(100% - .1rem) .1rem,.1rem .1rem);
}<div class = "box"></div>Спасибо, кажется, это помогает! Мне было интересно, как вы рассчитываете значение 0,04rem, чтобы выровнять «границу» в углу?
@Shelas, вы можете проверить код JS, который генерирует код. Тут много математики, поэтому я сделал генератор
.1remэквивалентно1.6pxв большинстве браузеров. Большинство браузеров округляют дробные значения пикселей в большую или меньшую сторону. - stackoverflow.com/questions/22830473/…