CSS3實現0.5像素邊框


實現方法

1.設置目標元素作為定位參照

1
2
3
.border {
     position : relative ;
}

2.給目標元素添加一個偽元素before或者after,並設置絕對定位

1
2
3
4
. border :before {
     content : "" ;
     position : absolute ;
}

3.給偽元素添上1px的邊框

1
border : 1px solid red ;

4.設置偽元素的寬高為目標元素的2倍

1
2
width : 200% ;
height : 200% ;

5.縮小0.5倍(變回目標元素的大小)

1
2
transform-origin: 0 0 ;
transform: scale( 0.5 , 0.5 );

6.再把border包進來

1
box-sizing: border-box;

簡言之就是先放大再縮回來,border-box是關鍵,否則邊框不會一起縮放

完整代碼

01
02
03
04
05
06
07
08
09
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
.border {
     position : relative ;
}
 
. border :before {
     content : "" ; /* 注意這里為雙引號 */
     position : absolute ;
     width : 200% ;
     height : 200% ;
     border : 1px solid #ff0000 ;
     border-radius: 5px ; /* 也可以設置圓角 */
     -webkit-transform-origin: 0 0 ;
     -moz-transform-origin: 0 0 ;
     -ms-transform-origin: 0 0 ;
     -o-transform-origin: 0 0 ;
     transform-origin: 0 0 ;
     -webkit-transform: scale( 0.5 , 0.5 );
     -ms-transform: scale( 0.5 , 0.5 );
     -o-transform: scale( 0.5 , 0.5 );
     transform: scale( 0.5 , 0.5 );
     -webkit-box-sizing: border-box;
     -moz-box-sizing: border-box;
     box-sizing: border-box;
}

點擊查看Demo(建議用手機端打開,看的更明顯)


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM