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

  發布時間:2020-01-13 15:05:37   作者:認真學前端   我要評論
這篇文章主要介紹了CSS像素以及移動端不同屏幕適配問題解決,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧

像素

分辨率

我們通常所說的顯示器分辨率,其實是指桌面設定的分辨率,而不是顯示器的物理分辨率。只不過現在液晶顯示器成為主流,由于液晶的顯示原理與CRT不同,只有在桌面分辨率與物理分辨率一致的情況下,顯示效果最佳,所以現在我們的桌面分辨率幾乎總是與顯示器的物理分辨率一致了。

UI稿的像素

UI稿的像素是指物理像素
我們接到的UI設計稿例如750px就是物理像素

前端像素

只要兩個屏幕邏輯像素相同,它們的顯示效果就是相同的。 也就是CSS世界中的px相同,相同物理尺寸的屏幕顯示效果就是相同的

那么在實際屏幕顯示的時候他們之間都有神馬關系呢?

如下圖 當我們在網頁上設置一個元素的css像素(width:2px;height:2px)時,在dpr=1的顯示器上時,最終會占用一個四個物理像素點,當在dpr=2時的顯示器上時,會占用16個物理像素點。由此得出結論,在不同屏幕下css像素的物理尺寸是一致的,不同的是一個css像素對應的物理像素點個數不一樣

不同屏幕下的rem適配方案

<!-- m站移動端適配js -->

  // 適配  物理像素寬750 1rem=100px   
  // clientWidth(實際的邏輯像素)/375(參照基準邏輯像素) = fontSize(實際的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);
  // 這樣我們就計算出實際不同邏輯像素下1rem的值了
  // 實際工作中如果UI給是設計稿寬度是750px 那么我們就需要在量到的寬度的基礎上除以200
  // 我們在打開控制臺查看元素之間的距離的時候都是設計稿上的一半 設計稿的物理像素2px對應邏輯像素1px
  // 我司現在的設計稿都放在藍湖上 寬度都是標準的375 那么我們只需要在量得的寬度基礎上除以100就得到實際的寬度是多少rem

  // 附: 當然也有其他適配方案,但是rem原理都是一樣的,除非采用的不是rem方案

為什么蘋果手機上需要2倍圖或者三倍圖?

以2倍屏為例

原本2*2像素的圖片在2倍屏下 有4*4個像素點組成 那么多出來需要繪制的像素點的就會在以前周周附近找相似的,所以有了模糊的問題,F在工作中一般為了圖片高清顯示,都是采用蘋果兩倍圖。

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持腳本之家。

相關文章

最新評論

pc蛋蛋幸运28app下载地址