CSS透明与多重边框设计

1 透明边框

使用 CSS 中的半透明颜色,比如 rgba() 和 hsla(),代码设计如下所示:

  • border: 10px solid hsla(0,0%,100%,.5);
  • background: white;
     

但我们连使用半透明颜色不能实现半透明边框,我们的边框其实是存在的,默认情况下, 背景会延伸到边框所在的区域下层。从背景与边框(第三版)  (http://w3.org/TR/css3-background)开 始,我们可以通过 background-clip 属性来调整:

background-clip 属性样式结果
border-box背景会被元素的 border box (边框的外沿框)裁切掉
 padding-box浏览器就会用内边距的外沿来把背 景裁切掉
  • border: 10px solid hsla(0,0%,100%,.5);
  • background: white;
  • background-clip: padding-box;

可以看到这个完美的结果

2、多重边框

box-shadow方案(不会影响布局,也不会受到box-sizing属性影响,主要通过内边距或外边距模拟出边框所需要占据的空间;也不会响应鼠标事件,比如悬停或点击,如果需要的话,box-shadow属性加上inset关键字,视投影绘制在元素的内圈,此时需要增加额外的内边距来腾出足够的空隙;不能产生虚线边框效果。)

background:yellowgreen;

box-shadow:0 0 0 10px #655;

                     0 0 0 15px deeppink;

                     0 2px 5px 15px rgb(0,0,0,.6);

outline方案(只需要两层边框,可以产生虚线边框效果;可以通过outline-offset属性开控制它跟元素边缘之间的距离,属性甚至可以接受负值;只适用双层边框效果;不一定会贴合bordor-radius属性产生的圆角,它的描边可能还是直角的;描边可以不是矩形,最好在不同的浏览器中完整地测试最终效果)

background:yellowgreen;

border:10px solid #655;

outline:5px solid deeppink;

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值