css - 不同颜色的双边框

标签 css border less

<分区>

使用 Photoshop,我可以为具有两种不同颜色的元素放置两个不同的边框。有了它,我可以用我的元素制作许多动态阴影效果。即使使用 Photoshop 效果,我也可以使用投影和内阴影进行管理。

关于 Web 设计问题,如果我有如下图所示的设计,我如何使用 CSS 实现它?真的可以吗?
border with different color

注意: 我给白色元素设置了两个边框:外边框是白色的,内边框是灰色的。它们共同营造出动感十足的外观,让人感觉像是镶嵌元素,而白色元素采用枕形压花设计。所以事情有点:

div.white{
   border: 2px solid white;
   border: 1px solid grey;
}

但是你知道这是一个双重声明,而且是无效的。那么如何在 CSS 中管理此类内容呢?

如果我输入 border-style: double 那么你知道我不能为单个 double 边框传递两种不同的颜色。

div.white{
       border: double white grey;
}

此外,我还熟悉 LESS CSS 预处理器。因此,如果使用 CSS 预处理器可以实现这样的事情,请告诉我。

最佳答案

或者,您可以使用伪元素来这样做:) 伪元素解决方案的优点是您可以使用它来将内边框与实际边框隔开任意距离,背景将显示通过那个空间。标记:

body {
  background-image: linear-gradient(180deg, #ccc 50%, #fff 50%);
  background-repeat: no-repeat;
  height: 100vh;
}
.double-border {
  background-color: #ccc;
  border: 4px solid #fff;
  padding: 2em;
  width: 16em;
  height: 16em;
  position: relative;
  margin: 0 auto;
}
.double-border:before {
  background: none;
  border: 4px solid #fff;
  content: "";
  display: block;
  position: absolute;
  top: 4px;
  left: 4px;
  right: 4px;
  bottom: 4px;
  pointer-events: none;
}
<div class="double-border">
  <!-- Content -->
</div>

如果您想要彼此连续的边框(它们之间没有空格),您可以使用多个 box-shadow 声明(以逗号分隔)来实现:

body {
  background-image: linear-gradient(180deg, #ccc 50%, #fff 50%);
  background-repeat: no-repeat;
  height: 100vh;
}
.double-border {
  background-color: #ccc;
  border: 4px solid #fff;
  box-shadow:
    inset 0 0 0 4px #eee,
    inset 0 0 0 8px #ddd,
    inset 0 0 0 12px #ccc,
    inset 0 0 0 16px #bbb,
    inset 0 0 0 20px #aaa,
    inset 0 0 0 20px #999,
    inset 0 0 0 20px #888;
  /* And so on and so forth, if you want border-ception */
  margin: 0 auto;
  padding: 3em;
  width: 16em;
  height: 16em;
  position: relative;
}
<div class="double-border">
  <!-- Content -->
</div>

关于css - 不同颜色的双边框,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19463904/

相关文章:

html - 使用 CSS 向表格行添加两个顶部边框

css - 使用 less 变量输出字体属性时出现问题

windows - 在 Windows 下安装 Node.js 是否有任何安全隐患?

javascript - 如何从html代码中获取数据

html - 正文内容背后的英雄形象

jquery - Bootstrap等高+背景色问题

html - 如何创建边界间隙错觉

html - 如何去除网站的空白区域?

html - 如何在div中自定义边框

javascript - Symfony2 Assets 变更