亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

解決移動(dòng)端1px邊框最好的方法(推薦)

  發(fā)布時(shí)間:2020-07-23 15:35:31   作者:雨霖月寒   我要評(píng)論
這篇文章主要介紹了解決移動(dòng)端1px邊框最好的方法,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下

在移動(dòng)端開(kāi)發(fā)時(shí),經(jīng)常會(huì)遇到在視網(wǎng)膜屏幕中元素邊框變粗的問(wèn)題。本文將帶你探討邊框變粗問(wèn)題的產(chǎn)生原因及介紹目前市面上最好的解決方法。

1px 邊框問(wèn)題的由來(lái)

蘋(píng)果 iPhone4 首次提出了 Retina Display(視網(wǎng)膜屏幕)的概念,在 iPhone4 使用的視網(wǎng)膜屏幕中,把 2x2 個(gè)像素當(dāng) 1 個(gè)物理像素使用,即使用 2x2 個(gè)像素顯示原來(lái) 1 個(gè)物理像素顯示的內(nèi)容,從而讓 UI 顯示更精致清晰,這 2x2 個(gè)像素叫做邏輯像素。像這種像素比(像素比(即dpr)= 物理像素 / 邏輯像素)為 2 的視網(wǎng)膜屏幕也被稱(chēng)為二倍屏,目前市面上還有像素比更高的三倍屏、四倍屏。而 CSS 中 1px 指的是物理像素,因此,設(shè)置為 1px 的邊框在 dpr = 2 的視網(wǎng)膜屏幕中實(shí)際占用了 2 個(gè)邏輯像素的寬度,這就導(dǎo)致了界面邊框變粗的視覺(jué)體驗(yàn)。

使用 transform 解決

通過(guò)設(shè)置元素的 box-sizing 為 border-box,然后構(gòu)建偽元素,再使用 CSS3 的 transform 縮放,這是目前市面上最受推崇的解決方法。這種方法可以滿(mǎn)足所有的場(chǎng)景,而且修改靈活,唯一的缺陷是,對(duì)于已使用偽元素的元素要多嵌套一個(gè)無(wú)用元素。具體的實(shí)現(xiàn)如下:

.one-pixel-border {
  position: relative;
  box-sizing: border-box;
}

.one-pixel-border::before {
  display: block;
  content: "";
  position: absolute;
  top: 50%;
  left: 50%;
  width: 200%;
  height: 200%;
  border: 1px solid red;
  transform: translate(-50%, -50%) scale(0.5, 0.5);
}

這樣就可以得到 0.5px 的邊框。

還可以結(jié)合媒體查詢(xún)(@media)解決不同 dpr 值屏幕的邊框問(wèn)題,如下:

@media screen and (-webkit-min-device-pixel-ratio: 2), (min-resolution: 2dppx) {
  ...
}

@media screen and (-webkit-min-device-pixel-ratio: 3), (min-resolution: 3dppx) {
  ...
}

注意:IOS 系統(tǒng)的 safari 瀏覽器不支持標(biāo)準(zhǔn)的 min-resolution,使用非標(biāo)準(zhǔn)的 min-device-pixel-ratio。

使用 pixel-border.css 解決

pixel-border.css是一個(gè)解決移動(dòng)端 1px 邊框的通用 CSS 工具。使用 transform 的解決方法,僅有幾行的源碼,使用起來(lái)非常方便,是目前發(fā)現(xiàn)最好的解決方法。

安裝

npm安裝:

npm install pixel-border --save

yarn安裝:

yarn add pixel-border

瀏覽器安裝,建議安裝壓縮后的版本:

<link rel="stylesheet" href="path/to/pixel-border.min.css"><link>

使用

pixel-border 通過(guò)元素的 ::before 偽元素使用 transform 縮放為元素設(shè)置邊框。因此,你可以使用原生的 CSS 邊框?qū)傩詾樵卦O(shè)置邊框,只需要在元素上添加一個(gè) pixel-border 或 pixel-border="true" 的屬性,并設(shè)置元素的 border-style 值即可。如下會(huì)創(chuàng)建一個(gè)單像素邊框:

<div pixel-border style="border-style: solid;">單像素邊框</div>

注意:pixel-border已為元素的邊框設(shè)置為固定值 1px,因此不要為元素再設(shè)置 border-width,并且元素的 box-sizing 值被設(shè)置為 border-box,請(qǐng)不要重置為其他類(lèi)型的值。

設(shè)置任意邊框:

設(shè)置元素某一邊的邊框時(shí),只需為元素設(shè)置 border-top-style、border-bottom-style、border-left-style、border-right-style 其中一項(xiàng)的值,并設(shè)置元素 border-color 的值即可。如下設(shè)置上邊邊框:

<style>
  .border-top {
    border-top-style: solid;
    border-top-color: red;
  }
</style>

<div class="border-top" pixel-border>上邊框</div>

設(shè)置圓角邊框:

當(dāng)需要圓角邊框時(shí),始終為 border-radius 設(shè)置百分比值。如下:

<style>
  .border-radius {
    width: 100px;
    height: 100px;
    border-style: solid;
    border-color: red;
    border-radius: 10%;
  }
</style>

<div class="border-radius" pixel-border>圓角邊框</div>

 

到此這篇關(guān)于解決移動(dòng)端1px邊框最好的方法的文章就介紹到這了,更多相關(guān)解決移動(dòng)端1px邊框內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持腳本之家!

相關(guān)文章

  • 解決移動(dòng)端1px邊框問(wèn)題的幾種方法(5種)

    這篇文章主要介紹了解決移動(dòng)端1px邊框問(wèn)題的幾種方法,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)
    2020-02-27
  • 詳解移動(dòng)端Html5頁(yè)面中1px邊框的幾種解決方法

    這篇文章主要介紹了詳解移動(dòng)端Html5頁(yè)面中1px邊框的幾種解決方法的相關(guān)資料,小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧
    2018-07-24
  • reset.css引入以及1px邊框問(wèn)題的解決方法

    這篇文章主要給大家介紹了關(guān)于reset.css引入以及1px邊框問(wèn)題的解決方法,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面
    2018-07-10

最新評(píng)論