继续浏览精彩内容
慕课网APP
程序员的梦工厂
打开
继续
感谢您的支持,我会继续努力的
赞赏金额会直接到老师账户
将二维码发送给自己后长按识别
微信支付
支付宝支付

CSS实现多重边框解决方案

林金章
关注TA
已关注
手记 2
粉丝 1
获赞 9

1.box-shadow解决方案
首先,先看下box-shadow的语法: box-shadow: h-shadow v-shadow blur spread color inset;,其中第一、二个参数是分别是阴影的水平和垂直偏移量,第三个参数是阴影的模糊值,第四个参数是阴影的扩张半径(或叫尺寸/大小)<!--more-->。
利用两个为零的偏移量和一个为零的模糊值加上一个正值的扩张半径可以投影出一个实线边框。
eg.

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

因为box-shadow支持逗号分隔法,因此我们可以创建任意数量的投影(边框)

background: yellowgreen;
box-shadow: 0 0 0 10px #655,
0 0 0 15px deeppink,
0 2px 5px 15px rgba(0,0,0,.6);//再加上一个正常的投影

使用多重投影解决方案需要注意的地方:
1.不受box-sizing影响
2.不响应鼠标事件,可以加上关键字inset来使投影绘制在元素内圈来解决
3.只能绘制实线边框

2.outline(描边)方案
首先,看下outline的语法:outline: outline-color outline-style outline-width。
利用outline可以实线两层边框

background: yellowgreen;
border: 10px solid #65;
outline: 5px solid deeppink;

利用outline-offsert(outline-offset: length|inherit;)对描边进行偏移实现缝边效果,

background: #655;
border: 10px solid #655;
outline: 2px dashed white;
outline-offset: -10px;

使用outline方案需要注意的地方:
1.只能绘制两层边框
2.边框不会贴合border-radius产生的圆角,被css工作组认为是一个bug,未来可能会改变为贴合
3.边框的样式灵活(dotted、dashed、solid、double等等),不局限于实线边框

打开App,阅读手记
0人推荐
发表评论
随时随地看视频慕课网APP