這篇文章主要介紹了如何解決CSS像素以及移動(dòng)端不同屏幕適配的問題,具有一定借鑒價(jià)值,感興趣的朋友可以參考下,希望大家閱讀完這篇文章之后大有收獲,下面讓小編帶著大家一起了解一下。
目前成都創(chuàng)新互聯(lián)已為上千的企業(yè)提供了網(wǎng)站建設(shè)、域名、網(wǎng)絡(luò)空間、網(wǎng)站托管、企業(yè)網(wǎng)站設(shè)計(jì)、武安網(wǎng)站維護(hù)等服務(wù),公司將堅(jiān)持客戶導(dǎo)向、應(yīng)用為本的策略,正道將秉承"和諧、參與、激情"的文化,與客戶和合作伙伴齊心協(xié)力一起成長,共同發(fā)展。
像素
分辨率
我們通常所說的顯示器分辨率,其實(shí)是指桌面設(shè)定的分辨率,而不是顯示器的物理分辨率。只不過現(xiàn)在液晶顯示器成為主流,由于液晶的顯示原理與CRT不同,只有在桌面分辨率與物理分辨率一致的情況下,顯示效果最佳,所以現(xiàn)在我們的桌面分辨率幾乎總是與顯示器的物理分辨率一致了。
UI稿的像素
UI稿的像素是指物理像素
我們接到的UI設(shè)計(jì)稿例如750px就是物理像素
前端像素
只要兩個(gè)屏幕邏輯像素相同,它們的顯示效果就是相同的。 也就是CSS世界中的px相同,相同物理尺寸的屏幕顯示效果就是相同的
那么在實(shí)際屏幕顯示的時(shí)候他們之間都有神馬關(guān)系呢?
如下圖 當(dāng)我們?cè)诰W(wǎng)頁上設(shè)置一個(gè)元素的css像素(width:2px;height:2px)時(shí),在dpr=1的顯示器上時(shí),最終會(huì)占用一個(gè)四個(gè)物理像素點(diǎn),當(dāng)在dpr=2時(shí)的顯示器上時(shí),會(huì)占用16個(gè)物理像素點(diǎn)。由此得出結(jié)論,在不同屏幕下css像素的物理尺寸是一致的,不同的是一個(gè)css像素對(duì)應(yīng)的物理像素點(diǎn)個(gè)數(shù)不一樣
不同屏幕下的rem適配方案
// 適配 物理像素寬750 1rem=100px // clientWidth(實(shí)際的邏輯像素)/375(參照基準(zhǔn)邏輯像素) = fontSize(實(shí)際的1rem像素值)/100(參照的1rem邏輯像素值) ;(function(win, doc){ function change(){ doc.documentElement.style.fontSize=100*doc.documentElement.clientWidth/375+'px'; } change(); win.addEventListener('resize', change, false); })(window, document); // 這樣我們就計(jì)算出實(shí)際不同邏輯像素下1rem的值了 // 實(shí)際工作中如果UI給是設(shè)計(jì)稿寬度是750px 那么我們就需要在量到的寬度的基礎(chǔ)上除以200 // 我們?cè)诖蜷_控制臺(tái)查看元素之間的距離的時(shí)候都是設(shè)計(jì)稿上的一半 設(shè)計(jì)稿的物理像素2px對(duì)應(yīng)邏輯像素1px // 我司現(xiàn)在的設(shè)計(jì)稿都放在藍(lán)湖上 寬度都是標(biāo)準(zhǔn)的375 那么我們只需要在量得的寬度基礎(chǔ)上除以100就得到實(shí)際的寬度是多少rem // 附: 當(dāng)然也有其他適配方案,但是rem原理都是一樣的,除非采用的不是rem方案
為什么蘋果手機(jī)上需要2倍圖或者三倍圖?
以2倍屏為例
原本2*2像素的圖片在2倍屏下 有4*4個(gè)像素點(diǎn)組成 那么多出來需要繪制的像素點(diǎn)的就會(huì)在以前周周附近找相似的,所以有了模糊的問題?,F(xiàn)在工作中一般為了圖片高清顯示,都是采用蘋果兩倍圖。
感謝你能夠認(rèn)真閱讀完這篇文章,希望小編分享的“如何解決CSS像素以及移動(dòng)端不同屏幕適配的問題”這篇文章對(duì)大家有幫助,同時(shí)也希望大家多多支持創(chuàng)新互聯(lián),關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道,更多相關(guān)知識(shí)等著你來學(xué)習(xí)!