转载请注明出处: 皮哈皮阿
本文的链接地址: https://blog.phpat.com/web/454.html
假设我们想给一个 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;
转载请注明出处: 皮哈皮阿
本文的链接地址: https://blog.phpat.com/web/454.html
最近更新:更新到v2.5.7
请求中为数字/布尔的字段要多加注意,...
基于emlog开发的微信小程序
仿小米论坛版本更新V2.0,本次暂时...
element-ui el-tabl...
@子恒:😂躺平吧,世界都跟你没关系
你写得非常清晰明了,让我很容易理解你的观...
#Emlog插件RSS订阅器发布#
一直到今天,还没10天,我支付宝里仅剩7...
@樊鑫:不支持,仅支持pro版本,可以在...
#Beginning-Pro发布,Emlog-Pro + Beginning-Pro, 更Pro#
支持5.3吗?在哪里购买/下载?
#Beginning-Pro发布,Emlog-Pro + Beginning-Pro, 更Pro#
@叽叽:开源了的,https://git...
#vue.js组件之手写签名板vue-signature-simple#