与第一种方法类似,如果要求边框?鹊谋尘笆峭该鞯模?此方案便行不通了。
法三:border-image + overflow: hidden
这个方法也很好理解,既然设置了 background-image
的元素的 border-radius
失效。那么,我们只需要给它加一个父容器,父容器设置 overflow: hidden
+ border-radius
即可:
1 |
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 |
|
效果如下:
当然,这里还是多借助了一个元素实现。还有一种方法,可以不使用多余元素实现:
法四:border-image + clip-path
设置了 background-image
的元素的 border-radius
失效。但是在 CSS 中,还有其它方法可以产生带圆角的容器,那就是借助 clip-path
。
[clip-path](https://developer.mozilla.org/zh-CN/docs/Web/CSS/clip-path)
,一个非常有意思的 CSS 属性。
clip-path CSS 属性可以创建一个只有元素的部分区域可以显示的剪切区域。区域内的部分显示,区域外的隐藏。剪切区域是被引用内嵌的URL定义的路径或者外部 SVG 的路径。
简而言之,这里,我们只需要在 border-image
的基础上,再利用 clip-path
裁剪出一个带圆角的矩形容器即可:
1 |
|
1 2 3 4 5 6 7 8 |
|
解释一下:clip-path: inset(0 round 10px)
。
- clip-path: inset() 是矩形裁剪
- inset() 的用法有多种,在这里
inset(0 round 10px)
可以理解为,实现一个父容器大小(完全贴合,垂直水平居中于父容器)且border-radius: 10px
的容器,将这个元素之外的所有东西裁剪掉(即不可见)。
非常完美,效果如下:
当然,还可以利用 filter: hue-rotate()
顺手再加个渐变动画:
你可以在我 CSS-Inspiration 看到这个例子:
CSS-Inspiration -- 使用 clip-path 和 border-image 实现圆角渐变边框
更多编程相关知识,请访问:编程视频!!
以上就是使用CSS实现圆角渐变边框的详细内容,更多文章请关注木庄网络博客!
相关阅读 >>
更多相关阅读请进入《css》频道 >>

Vue.js 设计与实现 基于Vue.js 3 深入解析Vue.js 设计细节
本书对 Vue.js 3 技术细节的分析非常可靠,对于需要深入理解 Vue.js 3 的用户会有很大的帮助。——尤雨溪,Vue.js作者