透明水晶边框css,CSS揭秘——透明边框

当我们在实现透明边框的时候,会遇到一些问题。在阐述这些问题之前,首先看看什么是透明边框,总的来说,就如下图所示。

e8f2a69e1d0a

透明边框.png

众所周知的是,一旦给一个元素设置了背景之后,那么这个背景所包含的区域是 content + padding + border。

按照一般的思路,我们要设置一个透明边框,首先会用到以下代码:

background: #FFF;

border: 10px solid rgba(255, 255, 255, .5);

如果是这么设置,不出意外我们会看到以下结果。

e8f2a69e1d0a

透明边框2.png

看上去我们像是没有设置这个边框,实际上这个边框是存在的,由于我们的边框设置的是透明的白色,而这个元素的背景也是白色,所以看上去就只有白色,所谓的透明边框也就不存在了。不过这只是特例情况,如果元素的背景不是白色,而是其它颜色,那么我们是可以看到这个边框的,不过这个时候就不再是透明边框,而是背景色+透明色的结合色。就比如设置以下代码。

background-color: orange;

border: 10px solid rgba(255, 255, 255, .5);

效果如下:

e8f2a69e1d0a

透明边框3.png

再次回到一开始以白色为背景的情况,为什么会出现透明边框消失呢?原因就是白色+透明色还是白色,那么我们能不能让背景色的渲染范围由 content+padding+border 变成 content+padding 呢?

解决这个问题的突破口是 background-clip 属性,它就是用来设置元素背景渲染范围的,有三个可选值分别是 content-box, padding-box, border-box。详情可以查看 CSS3 Background Clip

所以,为了得到一个令人满意的透明边框,我们的代码是

background-clip: padding-box;

background-color: #FFF;

border: 10px solid rgba(255, 255, 255, .5);

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值