border-image 图片 实现
1 | .border-image-1px { |
缺点 要有图片,圆角会模糊
background-image 渐变实现
1 | .border { |
缺点, 圆角会模糊 优点,不用图片
viewport+rem实现
box-shadow 实现
1 | div{ |
优点是圆角不是问题,缺点是颜色不好控制。
transform: scale(0.5) 实现 推荐相当灵活
用height:1px的div,然后根据媒体查询设置transform: scaleY(0.5);,
1
2
3
4
5
6
7div{
height:1px;
background:#000;
-webkit-transform: scaleY(0.5);
-webkit-transform-origin:0 0;
overflow: hidden;
}用::after和::befor,设置border-bottom:1px solid #000,然后在缩放-webkit-transform: scaleY(0.5);可以实现两根边线的需求
1
2
3
4
5
6div::after{
content:'';
width:100%;
border-bottom:1px solid #000;
transform: scaleY(0.5);
}用::after设置border:1px solid #000; width:200%; height:200%,然后再缩放scaleY(0.5); 优点可以实现圆角,京东就是这么实现的,缺点是按钮添加active比较麻烦。
1
2
3
4
5
6
7
8
9
10
11
12
13.div::after {
content: '';
width: 200%;
height: 200%;
position: absolute;
top: 0;
left: 0;
border: 1px solid #bfbfbf;
border-radius: 4px;
-webkit-transform: scale(0.5,0.5);
transform: scale(0.5,0.5);
-webkit-transform-origin: top left;
}