Bootstrap

css3 border渐变实现

纵然尝试千万遍,也要把ta给实现

border的一条边框渐变

实现效果如图:
在这里插入图片描述

 <div class="border_bottom">borderBottom渐变</div>

方法一:背景渐变 + 遮盖

.border_bottom {
  margin-left: 200px;
  height: 50px;
  width: 150px;
  background-clip: padding-box, border-box;
  background-origin: padding-box, border-box;
  background-image: linear-gradient(135deg, #fff, #fff),
    linear-gradient(135deg,red, green);
  border-bottom: 2px transparent solid;
}

该方法实现原理:
使用 background-image进行背景的渐变色效果,利用background-image中第一段的linear-gradient使得div里的渐变色恢复成原背景色,而border的色值只需要使用背景色就OK👌
background-clip: 设置元素的背景(背景图片或颜色)是否延伸到边框、内边距盒子、内容盒子下面。

  • border-box
    背景延伸至边框外沿(但是在边框下层)。
  • padding-box
    背景延伸至内边距(padding)外沿。不会绘制到边框处。
  • content-box
    背景被裁剪至内容区(content box)外沿。
  • text
    背景被裁剪成文字的前景色。

background-origin: 规定了指定背景图片background-image 属性的原点位置的背景相对区域.

  • border-box
    背景图片的摆放以border区域为参考
  • padding-box
    背景图片的摆放以padding区域为参考
  • content-box
    背景图片的摆放以content区域为参考

方法二:利用伪元素 + 渐变

.border_bottom {
  margin-left: 200px;
  height: 50px;
  width: 150px;
  position: relative;
  &::after {
    content: "";
    position: absolute;
    bottom: 0;
    left: 0;
    width: 150px;
    height: 2px;
    background: linear-gradient(to right, #f80, #2ed);
}

该方法实现原理:
利用伪元素创造一个标签,给标签设置背景色渐变,通过position进行位置的调整

悦读

道可道,非常道;名可名,非常名。 无名,天地之始,有名,万物之母。 故常无欲,以观其妙,常有欲,以观其徼。 此两者,同出而异名,同谓之玄,玄之又玄,众妙之门。

;