上一篇博文分析了1px像素問題的產生原因,
那這次就探討一下解決方法。
解決方法有很多,根據項目環境和使用場景選擇最合適的就行,下面整理了幾種解決方式:
1、通過設置meta標籤viewport
分析1px像素產生原因時,有說到meta標籤設置的width=device-width,其實這也是產生1px像素問題的前提條件之一,無論你是rem適配方式還是媒體查詢的響應式佈局,你最終在375px的總寬度下,邊框最小css單位也只能是1px,而750px的設計圖裏1px佔1/750,375px裏1px佔1/375,比例大了一倍,視覺上肯定是粗了。
所以,如果設置content的width就等於設計圖大小750px,然後通過動態設置maximum-scale值讓網頁整體縮放,就能實現效果了,這也是適配移動端不同屏幕大小的一種思路。
以iphoneX爲例,
<meta name="viewport" content="width=750,initial-scale=1.0,maximum-scale=0.5">
這樣就能讓iphoneX完美還原750px的設計圖了,maximum-scale的值就等於window.screen.width / 750,
不過這樣設置後,在和其他content屬性width值不同的頁面間來回切換會產生橫向及縱向滾動條,如果是公司同一項目裏切換頁面還好,一旦有和其他項目的跳轉交互就會產生bug,謹慎使用。