代码很简单:
<div class="top" style="background:green";>
<div class="inner" style="border: 1px solid white;"></div>
</div>
内部 div 具有透明背景,因此只有在我定义它后您才能看到边框。 我试图让内部 div 的右边界和 Angular 边界相交,如下所示:
目标是在所有四个 Angular 上都有该交叉点。
最佳答案
你可以使用linear-gradient
,你只需要一个元素:
.box {
margin:30px;
width:100px;
height:100px;
padding:10px;
background:
linear-gradient(#fff,#fff) 10px 0,
linear-gradient(#fff,#fff) 0 10px,
linear-gradient(#fff,#fff) calc(100% - 10px) 0,
linear-gradient(#fff,#fff) 0 calc(100% - 10px);
background-size:1px 100%,100% 1px;
background-repeat:no-repeat;
}
body {
background:green;
}
<div class="box">
</div>
您还可以依靠 CSS 变量轻松控制交集:
.box {
margin:20px;
width:100px;
height:100px;
padding:var(--c,10px);
background:
linear-gradient(#fff,#fff) var(--c,10px) 0,
linear-gradient(#fff,#fff) 0 var(--c,10px),
linear-gradient(#fff,#fff) calc(100% - var(--c,10px)) 0,
linear-gradient(#fff,#fff) 0 calc(100% - var(--c,10px));
background-size:1px 100%,100% 1px;
background-repeat:no-repeat;
display:inline-block;
box-sizing:border-box;
}
body {
background:green;
}
<div class="box">
</div>
<div class="box" style="--c:20px;">
</div>
<div class="box" style="--c:0px;">
</div>
<div class="box" style="--c:40px;">
</div>
相同的逻辑,不同的语法:
.box {
margin:20px;
width:100px;
height:100px;
padding:var(--c,10px);
background:
linear-gradient(#fff,#fff) left,
linear-gradient(#fff,#fff) top,
linear-gradient(#fff,#fff) right,
linear-gradient(#fff,#fff) bottom;
background-size:1px 100vh,100vw 1px;
background-origin:content-box;
background-repeat:no-repeat;
display:inline-block;
box-sizing:border-box;
}
body {
background:green;
}
<div class="box">
</div>
<div class="box" style="--c:20px;">
</div>
<div class="box" style="--c:0px;">
</div>
<div class="box" style="--c:40px;">
</div>
关于html - 我可以让两个相邻的边界相互交叉吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51453655/