Можно ли сделать границу div скрытой в определенном месте, как показано на рисунке выше?
Какой-то div маскирует другой div без установки background-color
(потому что фон всего сайта представляет собой градиент).
Я не хочу использовать SVG, потому что хочу, чтобы свойства границ были доступны для использования.
Я пытался использовать псевдоэлементы со свойством mask
с черным прямоугольником SVG внутри, но граница все еще видна (даже если я поместил маску внутри .card
div без ::after
.
.card {
position: relative;
display: flex;
flex-direction: column;
height: 100%;
width: 100%;
padding: 2rem;
border: 1px solid var(--border-color);
border-radius: 2vw;
}
.card::after {
content: "";
position: absolute;
width: 50px;
height: 10px;
top: -5px;
left: 50%;
transform: translateX(-50%);
-webkit-mask: url("../../assets/rect-mask.svg");
mask: url("../../assets/rect-mask.svg");
}
Вы можете использовать clip-path
:
.box {
--s: 80px; /* size of the cut */
width: 200px;
aspect-ratio: 1;
text-align: center;
position: relative;
margin: 50px;
}
/* your cut border */
.box:before {
content: "";
position: absolute;
inset: 0;
border: 5px solid red;
border-radius: 20px;
clip-path: polygon(0 0,calc(50% - var(--s)/2) 0,calc(50% - var(--s)/2) 50%,calc(50% + var(--s)/2) 50%,calc(50% + var(--s)/2) 0,100% 0,100% 100%,0 100%);
}
/**/
.box span {
display: inline-block;
width: 50px;
aspect-ratio: 1;
border-radius: 50%;
background: blue;
translate: 0 -50%;
}
<div class = "box">
<span></span>
</div>
Я протестировал обтравочный контур и не смог понять, почему он не работает (все границы исчезли)... но inset: 0 (невероятно) - это именно то, что я искал!!! Большое спасибо!
вы можете использовать элементы <fieldset>
и <legend>
..
fieldset {
border : 4px solid red;
border-radius : 2em;
width : 12em;
}
legend {
margin : 0 auto;
padding : 0 1rem; /* make spaces around */
font-size : 2rem;
}
<fieldset>
<legend>😃</legend>
<p>
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Sed non risus. Suspendisse lectus tortor, dignissim sit amet, adipiscing nec,...
</p>
</fieldset>
Какой у вас HTML? Без HTML CSS практически бессмысленен.