1

我希望我<div>的底部边框从远离左侧的距离开始。就像是:

abc
  ^^^^^^^^^^

where^代表一块边界。

我使用border-image. 我将 a 设置border-imagelinear-gradient()图像,该图像开始透明,并从某些像素变为灰色。

<style>
    div {
        width: 200px;
        border-top-style: none;
        border-bottom-style: solid;
        border-width: 1px;
        border-image: linear-gradient(to right,
            transparent 0,
            transparent 1em,
            lightgray 1em,
            lightgray 100%) 100% 1;
    }
</style>
<div>abc</div>

现在新的要求是在现有线的正下方添加一条 1px 的白线来模拟 3d 效果。我以为我可以简单地为边框图像添加一个垂直渐变,但我不知道该怎么做。

4

2 回答 2

0

你可以实现它box-shadow

如果你使用display: flex你的 div 你应该after使用定位伪元素position: absoute

看这个例子:

body {
      background-color: lightgreen;
    }
    div { 
    display: flex;
    position: relative;
    
    }
    div:after {
      content: "";
      position: absolute;
      bottom: 0;
      left: 0;
      display: block;
      width: 200px;
      height: 1px;
      box-shadow: 10px 1px 0 0 lightgray, 10px 2px 0 0 white;
    }
<div>abc</div>
<div>edf</div>

于 2019-07-29T06:51:18.493 回答
0

而不是边框​​考虑多个背景。我使用不同的颜色来更好地查看结果:

.box {
  width: 200px;
  background: 
    linear-gradient(blue, blue) 1em 100%/ 100% 1px no-repeat,
    linear-gradient(red, red)   1em 100%/ 100% 2px no-repeat;
}
<div class="box">abc</div>

于 2019-07-29T08:37:12.527 回答