html多重边框,中间空白,CSS揭秘之《多重边框》

1、box-shadow还接受第四个参数(称作“扩张半径”), 通过指定正值或负值, 可以让投影面积加大或者减小

2、如果我们想要一道实线边框其实也是可以通过box-shadow来模拟,原理就是一个正值的扩张半径加上两个为零的偏移量以及为零的模糊值

eg:

background: yellowgreen;

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

3、border其实也能实现上述实线效果而且似乎挺简单,但是box-shadow却是有border无法媲美的功能,它支持逗号分隔语法, 我们可以创建任意数量的投影

eg:

box-shadow: 0 0 0 10px #655, 0 0 0 15px deeppink;

4、需要注意的是box-shadow 是层层叠加的,也就是说如果你想让第二层边框宽度为5的话则必须在第一层边框宽度10的基础上增加5,也就是最终值为15

div {

width: 100px;

height: 60px;

margin: 25px;

background: yellowgreen;

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

0 0 0 15px deeppink,

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

}

具体效果可见链接

5、投影效果跟边框的效果完全不一致,

a)投影它不会影响布局, 而且也不会受到 box-sizing 属性的影响

b)边框会响应鼠标点击事件,投影出来的边框虽然看上去占据空间大了很多,但是点击区域范围没有变大(无法响应点击事件可通过因为它不会影响布局, 而且也不会受到 box-sizing 属性的影响)

6、如果我们要模拟虚线边框的话,box-shadow 就没辙了,虽然outline并不支持逗号分隔,但是可实现虚拟边框,还可以通过 outline-offset 属性来控制它跟元素边缘之间的间距, 这个属性甚至可以接受负值

需要注意的是:边框不一定会贴合 border-radius 属性产生的圆角, 因此如果元素

是圆角的, 它的描边可能还是直角的

div {

background: yellowgreen;

border: 10px solid #655;

outline: 5px solid deeppink;

outline-offset: 5px;

}

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值