【问题标题】:CSS Stripes With border-image带边框图像的 CSS 条纹
【发布时间】:2018-12-20 14:47:30
【问题描述】:

我已经测试了几个小时,但是我似乎无法让边框图像做我想做的事情。

我正在尝试为带有水平条纹的 div 添加底部边框。即 2px 灰色、2px 白色和 2px 灰色;即灰色和白色条纹。

像这样:

这是我目前所拥有的:

.box {
  height: 50px;
  background-color: #74c5fc;
  border-style: solid;
  border-image:
      linear-gradient(
         to top, 
         #ccc 0%, 
         #ccc 33%, 
         #fff 33%, 
         #fff 66%, 
         #ccc 66%, 
         #ccc 100%
      ) 1 1 / 0 0 6px 0
    ;
}
<div class="box"></div>

我做错了什么?

【问题讨论】:

  • 或许你可以提供一张想要的效果图?目前尚不清楚您的要求。

标签: css linear-gradients border-image


【解决方案1】:

使用大切片值!

.box {
 height:100px;
 background-color: #74c5fc;
 border-style:solid;
 border-image:
      linear-gradient(
         to top, 
         #ccc 0%, 
         #ccc 33%, 
         #fff 33%, 
         #fff 66%, 
         #ccc 66%, 
         #ccc 100%
      ) 100 /0 0 6px 0;
}
<div class="box">

</div>

或者你可以这样做:

.box {
 height:100px;
 padding-bottom:6px;
 background:
  linear-gradient(#fff,#fff) 0 calc(100% - 2px)/100% 2px no-repeat, 
  linear-gradient(#ccc,#ccc) bottom/100% 6px no-repeat,
  #74c5fc content-box;
}
<div class="box">
</div>

或者像这样:

.box {
 height:100px;
 padding-bottom:6px;
 background:
  linear-gradient(to bottom, #ccc 2px,#fff 2px,#fff 4px,#ccc 4px) bottom/100% 6px no-repeat,
  #74c5fc content-box;
}
<div class="box">
</div>

你也可以考虑 box-shadow:

.box {
 height:100px;
 margin-bottom:6px;
 box-shadow:
  0 2px 0 #ccc,
  0 4px 0 #fff,
  0 6px 0 #ccc;
 background:#74c5fc;
}
<div class="box">

</div>

【讨论】:

  • 哇。这些解决方案真的很酷。我不得不承认我并不完全理解 slice 属性的实际工作原理。
  • @Lightfooted 是的,处理边界图像并不容易,您可以查看文档以更好地理解:developer.mozilla.org/en-US/docs/Web/CSS/border-image-slice ...这就是为什么我提供了比边界图像更简单的解决方案
猜你喜欢
  • 2019-05-22
  • 1970-01-01
  • 1970-01-01
  • 2021-09-23
  • 1970-01-01
  • 1970-01-01
  • 2016-12-26
  • 2020-11-08
相关资源
最近更新 更多