1像素邊框


公司的設計師在做設計圖的時候都是以iphone6(寬為750物理像素)為基准進行設計的。iphone6的設備像素比(即css像素與物理像素的比例)是2,所以設計師在設計圖畫了邊框為1px的box的時候,相對於css代碼來說就是0.5像素。

 

 

設計師的設計稿是375*2和667*2這樣作圖

 

對於這個問題,最直觀的方法就是css直接設置邊框為0.5px,經過測試,iPhone可以正常顯示,android下幾乎所有的瀏覽器都會把0.5識別為0,即無邊框狀態,所以這種方式行不通

 

 CSS3有縮放的屬性,我們可以利用這個屬性,縮小50%的1px的邊框,來實現這個功能,具體實現代碼如下:

 1   .border {
 2     position: relative;
 3   }
 4   
 5   .border::before {
 6     content: '';
 7     font-size: 0;
 8     position: absolute;
 9     left: 0;
10     top: 0;
11     display: block;
12     width: 100%;
13     height: 100%;
14     border: 1px solid #000;
15     transform-origin: 0 0;
16     box-sizing: border-box;
17   }
18 
19   @media (min-resolution: 2dppx) {
20     .border::before{
21       width: 200%;
22       height: 200%;
23       transform: scale(.5);
24     }
25   }
26 
27   @media (min-resolution: 3dppx) {
28     .border::before{
29       width: 300%;
30       height: 300%;
31       transform: scale(.33);
32     }
33   }

 

這段代碼使用了媒體查詢判斷設備像素比是2還是3,然后再進行設置,應為通常使用的手機就是2倍或3倍,當然有4倍和5倍等等,這些設備比較少。。

 

<resolution>

表示分辨率(表示設備的像素密度),單位dppx表示每個px的點數,如果設置3dppx則表示3個CSS像素寬度是1個物理像素寬度(即css像素與物理像素的比例是3)

@media (min-resolution: 3dppx) {}

 

更多內容查看MDN


免責聲明!

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



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