方法一:C3缩放
- 设置目标元素作为定位参照:
.box {
position : relative;
}
- 给目标元素添加一个伪元素before或者after,并设置绝对定位
.box : before {
content : '' ;
position : absolute ;
}
- 给伪元素添上1px的边框
border: 1px solid red;
- 设置伪元素的宽高为目标元素的2倍
width : 200% ;
height : 200% ;
- 将伪元素缩小0.5倍(变回目标元素的大小)
transform-origin : 0 0 ;
transform : scale( 0.5, 0.5 ) ;
- 在伪元素中把border包进来
box-sizing: border-box;
- 简言之就是先放大再缩回来,border-box是关键,否则边框不会一起缩放
用背景图来实现
通过伪元素的另一种实现方式
- 目标元素加上定位和宽高
.box {
position : relative;
width : 50px ;
height : 50px ;
}
- 给目标元素添加一个伪元素before和after
.box : before {
content : '' ;
position : absolute ;
border : solid 1px red ;
top : -50% ;
left : -50% ;
right : -50% ;
bottom : -50% ;
}
- 将伪元素缩小0.5倍(变回目标元素的大小)
transform-origin : 0 0 ;
transform : scale( 0.5, 0.5 ) ;
- 在伪元素中把border包进来
box-sizing: border-box;