首页 博客 文档 标签 归档 分类 示例文章 更新记录
半透明边框与background-clip - SasSPro | 优秀的 Emlog 文档展示模板 | 高效管理与展示解决方案
首页 博客 文档 标签 归档 分类 示例文章 更新记录

半透明边框与background-clip

2017-08-10 · 管理员 · 阅读 6200

假设我们想给一个 div 设置一层白色背景和一道半透明白色边框,body 的背景会从它的半透明边框中透上来。

效果如图:

点击查看原图

我们一开始的尝试可能是这样的:

background: #fff;
border: 50px solid rgba(255, 255, 255, .5);

写完后,一看浏览器,怎么回事?我的边框呢?

点击查看原图

这个结果可能会令你摸不着头脑,要是使用半透明颜色都实现不了半透明边框,那还有什么办法呢?

原因

尽管现在看起来像没有边框,但那 50px 的边框是实际存在的。因为默认情况下,背景是会延伸到边框的外沿,且处于边框的下层。我们来验证一下:

将边框改变颜色,并设置为虚线:

border: 50px dotted #000;

点击查看原图

我们发现,白色背景位于黑色边框的下面,知道这个原因之后,我们就可以想到,如果将背景裁切到边框的内沿就可以实现我们要的效果了。

幸好 CSS 有这个属性 background-clip

background-clip 设置元素的背景(背景图片或颜色)是否延伸到边框下面。

语法

background-clip: border-box
background-clip: padding-box
background-clip: content-box
background-clip: inherit

---摘自 MDN

于是我们设置 background-clip: padding-box; 即可,最后的代码:

border: 50px solid rgba(255,255,255, .5);
background-color: #fff;
background-clip: padding-box;

点击查看原图

上一篇 jquery中的map与原生js的map的区别 下一篇 emlog主题模板 beginning 更新至v2.6.1
管理员

emlog模版beginning开发者

评论交流 (0)

暂无评论,来坐第一个沙发吧~

发表评论