CSS像素以及移動端不同屏幕適配問題解決

像素
分辨率
我們通常所說的顯示器分辨率,其實(shí)是指桌面設(shè)定的分辨率,而不是顯示器的物理分辨率。只不過現(xiàn)在液晶顯示器成為主流,由于液晶的顯示原理與CRT不同,只有在桌面分辨率與物理分辨率一致的情況下,顯示效果最佳,所以現(xiàn)在我們的桌面分辨率幾乎總是與顯示器的物理分辨率一致了。
UI稿的像素
UI稿的像素是指物理像素
我們接到的UI設(shè)計(jì)稿例如750px就是物理像素
前端像素
只要兩個(gè)屏幕邏輯像素相同,它們的顯示效果就是相同的。 也就是CSS世界中的px相同,相同物理尺寸的屏幕顯示效果就是相同的
那么在實(shí)際屏幕顯示的時(shí)候他們之間都有神馬關(guān)系呢?
如下圖 當(dāng)我們在網(wǎng)頁上設(shè)置一個(gè)元素的css像素(width:2px;height:2px)時(shí),在dpr=1的顯示器上時(shí),最終會占用一個(gè)四個(gè)物理像素點(diǎn),當(dāng)在dpr=2時(shí)的顯示器上時(shí),會占用16個(gè)物理像素點(diǎn)。由此得出結(jié)論,在不同屏幕下css像素的物理尺寸是一致的,不同的是一個(gè)css像素對應(yīng)的物理像素點(diǎn)個(gè)數(shù)不一樣
不同屏幕下的rem適配方案
<!-- m站移動端適配js --> // 適配 物理像素寬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 // 我們在打開控制臺查看元素之間的距離的時(shí)候都是設(shè)計(jì)稿上的一半 設(shè)計(jì)稿的物理像素2px對應(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)的就會在以前周周附近找相似的,所以有了模糊的問題?,F(xiàn)在工作中一般為了圖片高清顯示,都是采用蘋果兩倍圖。
以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
相關(guān)文章
css列表滑動防止被底部遮住和適配屏幕長一點(diǎn)的機(jī)型處理
這篇文章主要介紹了css列表滑動防止被底部遮住和適配屏幕長一點(diǎn)的機(jī)型處理 ,需要的朋友可以參考下2019-07-09CSS3中媒體查詢結(jié)合rem布局適配手機(jī)屏幕
這篇文章主要介紹了css3中媒體查詢結(jié)合rem布局適配手機(jī)屏幕,需要的朋友可以參考下2019-06-10