今天聊聊解決移動端1px border的問題,當我們進行移動端開發需要實現1px的border是,可能會寫下如下程式碼:
border-bottom:1px solid black;
複製程式碼
寫完一看,border實現,但仔細看會發現,這怎麼成了2px,what happened? 其實,這時移動裝置的DPR導致的
何為DPR
DPR,Device-Pixel-Retio,裝置畫素比,就是裝置物理畫素與視覺畫素的比值,比如一臺手機裝置物理畫素為2560px,瀏覽器寬度是1280px,那麼DRP就是2,可以在控制檯列印window.devicePixelRatio檢視,移動端DPR=2,所以實際是2px的border,這裡提供兩種解決方法
viewport
head標籤加上一行程式碼
<meta name='viewport' content='width=device-width,initial-scale=0.5'>
複製程式碼
通過手動設定頁面縮放比例為0.5,2px的border就會自動變成1px,該方案十分方便,一行程式碼即可解決麻煩,缺點是對老專案來說需要大量修改已有佈局的尺寸
偽元素+transform
原理是利用:before or :after來重做border,通過transform實現縮放
.content{
positon:relative;
border:none;
}
.content:after{
content:'';
position:absolute;
width:100%;
height:1px;
bottom:0;
background:black;
transform:scaleY(0.5);
}
複製程式碼