亚洲精品亚洲人成在线观看麻豆,在线欧美视频一区,亚洲国产精品一区二区动图,色综合久久丁香婷婷

              當(dāng)前位置:首頁 > IT技術(shù) > 移動(dòng)平臺(tái) > 正文

              移動(dòng)端畫1px線
              2021-09-03 18:52:53

              移動(dòng)端的像素比(devicePixelRatio)是指手機(jī)的物理像素和邏輯像素的比值,物理像素又稱設(shè)備像素,一個(gè)物理像素是顯示器(手機(jī)屏幕)上最小的物理顯示單元。邏輯像素,也可以認(rèn)為是計(jì)算機(jī)坐標(biāo)系中的一個(gè)點(diǎn),這個(gè)點(diǎn)代表一個(gè)可以由程序使用的虛擬像素(css像素),然后相關(guān)系統(tǒng)轉(zhuǎn)換為物理像素。如果我們?cè)O(shè)置了邊框?yàn)?px,那么在像素比為2的手機(jī)上邊框就會(huì)顯示為2px。下面來說一下如何處理

              首先可以使用css3的媒體查詢

              .border{1px solid deeppink}
              
              //像素比為2
              @media screen and (-webkit-min-device-pixel-ratio: 2) {
                  .border { border: 0.5px solid deeppink }
              }
              //像素比為3
              @media screen and (-webkit-min-device-pixel-ratio: 3) {
                  .border { border: 0.33px solid deeppink }
              }

              除此之外,還可以使用偽類進(jìn)行處理,缺點(diǎn)是代碼量多

              
              @media screen and (-webkit-min-device-pixel-ratio:2){
                  .border::after{
                  border:1px solid deeppink;
                  transform-origin:0 0;
                  transform:scale(0.5)}
                  }

              還可以通過meta標(biāo)簽設(shè)置視口

              //像素比為2
              <meta name="viewport" content="width=device-width,initial-scale=0.5,maximum-scale=0.5, minimum-scale=0.5, user-scalable=no">
              //像素比為3
              <meta name="viewport" content="width=device-width,initial-scale=0.33,maximum-scale=0.33, minimum-scale=0.33, user-scalable=no">

              最后還可以使用js判斷

              <style>
              div{border:1px solid deeppink}
              .border div{border:0.5px solid deeppink}
              </style>
              <script>
              if(window.devicePixelRatio&&window.devicePixelRatio>1){
                  var item=document.createElement('div');
                  item.classList.add('border');
                  document.body.appendChild(item)
                  }
                  if(item.offsetHeight==1){
                      document.body.removeChild(item)
              document.querySelector('html').classList.add('border')
                  }
              
              </script>

              ?

              本文摘自 :https://blog.51cto.com/u

              開通會(huì)員,享受整站包年服務(wù)立即開通 >