假设我们想给一个 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
值
-
border-box
背景延伸到边框外沿(但是在边框之下)。 -
padding-box
边框下面没有背景,即背景延伸到内边距外沿。 -
content-box
背景裁剪到内容区 (content-box) 外沿。
---摘自 MDN
于是我们设置 background-clip: padding-box;
即可,最后的代码:
border: 50px solid rgba(255,255,255, .5);
background-color: #fff;
background-clip: padding-box;
本文发布于2017年08月10日11:26
,已经过了2815天,若内容或图片失效,请留言反馈
转载请注明出处: 皮哈皮阿
本文的链接地址: https://blog.phpat.com/dev/454.html
-
emlog主题模板 beginning 更新至v2.6.1
最近更新:更新到v2.5.7
2017/08/02
-
element-ui Radio 单选框组件默认值选不中?
请求中为数字/布尔的字段要多加注意,类型问题会导致很多bug出现。
2019/02/12
-
基于emlog开发的微信小程序开源了
基于emlog开发的微信小程序
2018/01/18
-
emlog模版仿小米论坛版本: V2.0
仿小米论坛版本更新V2.0,本次暂时更新这样了,以后会持续更新优化的。
2012/08/07
-
element-ui el-table 表格疯狂抖动跳动不停
element-ui el-table 表格疯狂抖动跳动不停, 这究竟是道德的沦丧还是人性的毁灭.~~
2019/07/11
-
Windows7程序图标无法锁定到任务栏的解决办法
2012/07/19

2018-01-17 11:41
2018-01-18 11:32
emlog简约社区模版发布了。
今天的你,戴口罩了吗? 没戴?小心病毒安排你跳社会摇!🕺 记得勤洗手,冲掉坏运气~ 积极防护,保护自己,晴天咱们一起当人群里最靓的仔!✨
2019加油!钱包要鼓,头发要多,烦恼要少,快乐要爆。愿你工作摸鱼得潇洒,生活撒欢得漂亮!别怕,宇宙都在暗中支持你!
人生真的是多姿多彩
不是每朵白云,都会带来真情;不是每个拥抱,都会面带微笑;不是每次思念,都能立刻兑现;不是每个朋友,都在身边守候;不是每个日子,都逢良辰吉时。国庆节到了,愿你节日快乐!
昨天和今天有什么不同
经朋友提示,Beginning模板一周年了,恭喜。 好事总会发生,敬请期待更好的作品
beginning模板越来越好了[耶]
2018是个新的开始
“生命是属于每个人自己的感受,不属于任何别人的看法。”