css实现圆角+边框渐变+背景半透明

ui小姐姐经常搞一些花里胡哨的东西,圆角+边框渐变+背景半透明,虽然每个都可以弄,但是合在一起真的不好弄,主要是因为通过border--image设置的边框渐变,无法使用圆角,下面是自己搜索整理的一些可以的方案。

方式1:使用background-clip,然后绘制多个背景图:

css 复制代码
.element1{
    width:200px;
    height:200px;
    box-sizing: border-box;
    border-radius: 20px;
    border:5px solid transparent;
    background-origin: border-box;
    background-clip: content-box,content-box,border-box;
    background-image:linear-gradient(to right,rgba(255,0,0,.4),rgba(0,255,255,.5)),linear-gradient(#fff,#fff),linear-gradient(45deg, #ff7e5f, #feb47b, #86e3ce, #d4a5a5);
}

这种方法有个问题,就是如果下面是图片的话,无法穿透图片,效果如下:

因此如果你不需要显示底图的话,可以使用这种方式。

方式2:使用mask

css 复制代码
.element {
    width: 200px;
    height: 200px;
    border-radius: 20px;
    position: relative;
    display: flex;
    justify-content: center;
    align-items: center;
    background: linear-gradient(to right,rgba(255,0,0,.4),rgba(0,255,255,.5));
}

.element::before {
    content: '';
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    bottom: 0;
    border-radius: inherit;
    border: 2px solid transparent;
    box-sizing: border-box;
    background: linear-gradient(45deg, #ff7e5f, #feb47b, #86e3ce, #d4a5a5);
    -webkit-mask: 
        linear-gradient(red 0 0) content-box, 
        linear-gradient(red 0 0);
    -webkit-mask-composite: destination-out;
    mask-composite: exclude;
}

这种失效的效果是可以的,可以穿透显示后面的背景,效果如下:

这种方式的话,稍微复杂一些,需要使用两个蒙层,然后计算去除蒙层重叠的部分。

相关推荐
N***738512 小时前
Vue网络编程详解
前端·javascript·vue.js
e***716712 小时前
Spring Boot项目接收前端参数的11种方式
前端·spring boot·后端
程序猿小蒜12 小时前
基于springboot的的学生干部管理系统开发与设计
java·前端·spring boot·后端·spring
银空飞羽12 小时前
让Trae CN SOLO自主发挥,看看能做出一个什么样的项目
前端·人工智能·trae
西游音月12 小时前
(4)pytest+Selenium自动化测试-元素定位之CSS Selector定位
css·selenium·pytest
Eshine、12 小时前
解决前端项目中,浏览器无法正常加载带.gz名称的文件
前端·vue3·.gz·.gz名称的js文件无法被加载
用户479492835691513 小时前
别再当 AI 的"人肉定位器"了:一个工具让 React 组件秒定位
前端·aigc·ai编程
WYiQIU14 小时前
面了一次字节前端岗,我才知道何为“造火箭”的极致!
前端·javascript·vue.js·react.js·面试
qq_3168377514 小时前
uniapp 观察列表每个元素的曝光时间
前端·javascript·uni-app
小夏同学呀14 小时前
在 Vue 2 中实现 “点击下载条码 → 打开新窗口预览 → 自动唤起浏览器打印” 的功能
前端·javascript·vue.js