实现 CSS 渐变边框的 5 种方法 渐变边框
![]()
在边框上放置渐变是一种非常常见的效果。有很多想法可以实现这种效果。今天我就把已知的方法列出来供大家参考。
1。使用 border-image
CSS 提供的 border-image 属性可以在边框上绘制复杂的图案。与壁纸一样,我们可以显示图像和线性渐变。
设置渐变边框 border-image 是最简单的方法。只需要两行代码:
CSS:
div {
border: 4px solid;
border-image: linear-gradient(to right, #8f41e9, #578aef) 1;
}
/* 或者 */
div {
border: 4px solid;
border-image-source: linear-gradient(to right, #8f41e9, #578aef);
border-image-slice: 1;
}Codepen demo 点击预览
虽然简单,但是有一个明显的缺陷。它不支持 使用 HTML: CSS: Codepen demo点击预览 这种方法的优点是简单易懂,兼容性好。缺点是内容设置为 要解决不精确的问题,可以使用boundary-radius2的方法将各个元素放置在最底层,如下渐变背景。上层设置透明边框和纯色背景(背景剪辑:必须放置填充框,以便不覆盖下层元素的边缘)。上下层设置为相同的 HTML: CSS: Codepen 演示通过单击 伪元素可以代替 HTML: CSS: Codepen 演示通过单击 HTML: CSS: Codepen demo点击预览 现在我记住了这5种方法。个人建议优先使用4号和5号,如果还有其他更好的方法,欢迎大家补充。边缘半径设置。接下来,我们介绍几种支持边缘半径 的方法。 、2。使用
背景背景绘制渐变背景并用纯色覆盖中心。这应该是最简单的思考方式。这个想法是:将两个盒子放在一起,在下面的盒子上放置渐变背景和垫子,在上面的盒子上放置纯色背景。 <div class="border-box border-bg">
<div class="content">
Lorem ipsum dolor, sit amet consectetur adipisicing elit. Iste ratione
necessitatibus numquam sunt nihil quos saepe sit facere. Alias accusamus
voluptate accusantium facere fugiat animi temporibus adipisci! Corporis,
accusamus tempora.
</div>
</div>.border-box {
width: 300px;
height: 200px;
margin: 25px 0;
}
.border-bg {
padding: 4px;
background: linear-gradient(to right, #8f41e9, #578aef);
border-radius: 16px;
}
.content {
height: 100%;
background: #222;
border-radius: 13px; /*trciky part*/
}边缘半径,既尴尬又不精确。 3。两层元素,
背景图片,背景剪辑边缘半径。<div class="border-box">
<div class='border-bg'></div>
<div class="content">
Lorem ipsum dolor, sit amet consectetur adipisicing elit. Iste ratione necessitatibus numquam sunt nihil quos
saepe sit facere. Alias accusamus voluptate accusantium facere fugiat animi temporibus adipisci! Corporis,
accusamus tempora.
</div>
</div>.border-box {
border: 4px solid transparent;
border-radius: 16px;
position: relative;
background-color: #222;
background-clip: padding-box; /*important*/
}
.border-bg {
position: absolute;
top: 0;
right: 0;
left: 0;
bottom: 0;
z-index: -1;
margin: -4px;
border-radius: inherit; /*important*/
background: linear-gradient(to right, #8f41e9, #578aef);
}进行预览4。伪元素,方法3的简化
div.border-bg来简化HTML结构。 <div class="border-box">
<div class="content">
Lorem ipsum dolor, sit amet consectetur adipisicing elit. Iste ratione necessitatibus numquam sunt nihil quos
saepe sit facere. Alias accusamus voluptate accusantium facere fugiat animi temporibus adipisci! Corporis,
accusamus tempora.
</div>
</div>.border-box {
border: 4px solid transparent;
border-radius: 16px;
position: relative;
background-color: #222;
background-clip: padding-box; /*important*/
}
.border-box::before {
content: '';
position: absolute;
top: 0;
right: 0;
left: 0;
bottom: 0;
z-index: -1;
margin: -4px;
border-radius: inherit; /*important*/
background: linear-gradient(to right, #8F41E9, #578AEF);
}进行预览5。一层元素,
背景剪辑、背景ground-ori gin背景图片我觉得最后一种是最优雅的方式。只需要使用一个图层元素,分别设置 background-clip、background-origin、、这三个属性 ❙❀集,第一集set 用于设置边框的纯色背景,另一个 set 用于设置边框渐变。 <div class="border-box">
<div class="content">
Lorem ipsum dolor, sit amet consectetur adipisicing elit. Iste ratione necessitatibus numquam sunt nihil quos
saepe sit facere. Alias accusamus voluptate accusantium facere fugiat animi temporibus adipisci! Corporis,
accusamus tempora.
</div>
</div>.border-box {
border: 4px solid transparent;
border-radius: 16px;
background-clip: padding-box, border-box;
background-origin: padding-box, border-box;
background-image: linear-gradient(to right, #222, #222), linear-gradient(90deg, #8F41E9, #578AEF);
}
版权声明
本文仅代表作者观点,不代表Code前端网立场。
本文系作者Code前端网发表,如需转载,请注明页面地址。
code前端网