html - 我可以让两个相邻的边界相互交叉吗?

标签 html css

代码很简单:

<div class="top" style="background:green";>
    <div class="inner" style="border: 1px solid white;"></div>
</div>

内部 div 具有透明背景,因此只有在我定义它后您才能看到边框。 我试图让内部 div 的右边界和 Angular 边界相交,如下所示:

border-example

目标是在所有四个 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>

CSS border intersection

相同的逻辑,不同的语法:

.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/

相关文章:

javascript - JS 改变 CSS 嵌套 tr

html - 在 svg 文件中嵌入带有 @font-face 的 base 64 truetype 字体,在 IE 中不起作用

javascript - Superzised with bootstrap - 2列响应式布局

javascript - 无法将文本与图片垂直对齐

animation - CSS3 动画问题

css - 如何删除 :focus, :用户取消阻止时的事件 css

javascript - 添加和删​​除类不同的元素

html - 当 href 处于事件状态时更改图像

jquery - CSS3 中的翻转和旋转功能在 Firefox 上不起作用

javascript - 如何让 div 占据所有可用的高度?