成人国产在线小视频_日韩寡妇人妻调教在线播放_色成人www永久在线观看_2018国产精品久久_亚洲欧美高清在线30p_亚洲少妇综合一区_黄色在线播放国产_亚洲另类技巧小说校园_国产主播xx日韩_a级毛片在线免费

資訊專(zhuān)欄INFORMATION COLUMN

移動(dòng)端border:1px問(wèn)題解決方案

explorer_ddf / 2228人閱讀

摘要:?jiǎn)栴}描述為了適配各種屏幕,我們寫(xiě)代碼時(shí)一般使用設(shè)備獨(dú)立像素來(lái)對(duì)頁(yè)面進(jìn)行布局。對(duì)此有如下解決方案這種方式可以滿(mǎn)足各種場(chǎng)景。

問(wèn)題描述:

為了適配各種屏幕,我們寫(xiě)代碼時(shí)一般使用設(shè)備獨(dú)立像素來(lái)對(duì)頁(yè)面進(jìn)行布局。
而在設(shè)備像素比大于 1的屏幕上,我們寫(xiě)的 1px實(shí)際上是被多個(gè)物理像素渲染,這就會(huì)出現(xiàn) 1px在有些屏幕上看起來(lái)很粗的現(xiàn)象。

對(duì)此有如下解決方案:

@mixin border-1px($color, $direction) {
  position: relative;

  &::before {
    content: "";
    position: absolute;
    z-index: 1;

    @if $direction==all {
      left: 0;
      top: 0;
      border: 1px solid $color;
      box-sizing: border-box;
      transform-origin: left top;
    }

    @else {
      background-color: $color;

      @if $direction==top {
        left: 0;
        top: 0;
        width: 100%;
        height: 1px;
      }

      @if $direction==right {
        right: 0;
        top: 0;
        width: 1px;
        height: 100%;
      }

      @if $direction==bottom {
        left: 0;
        bottom: 0;
        width: 100%;
        height: 1px;
      }

      @if $direction==left {
        left: 0;
        top: 0;
        width: 1px;
        height: 100%;
      }
    }
  }
}

@each $direction in all,
top,
right,
bottom,
left {
  @for $i from 1 to 10 {
    $scale: 1 / $i;

    @media only screen and (-webkit-min-device-pixel-ratio:$i) {
      .border-1px-#{$direction}::before {
        @if $direction==all {
          width: $i * 100%;
          height: $i * 100%;
          transform: scale($scale);
        }

        @if $direction==top {
          transform: scaleY($scale);
        }

        @if $direction==bottom {
          transform: scaleY($scale);
        }

        @if $direction==right {
          transform: scaleX($scale);
        }

        @if $direction==left {
          transform: scaleX($scale);
        }
      }
    }
  }
}

這種方式可以滿(mǎn)足各種場(chǎng)景。

使用方式:

第一步:@include border-1px(blue, all);引入由mixin定義的代碼塊(創(chuàng)建偽類(lèi) 模擬border)
第二步:

添加border-1px-#{$direction}類(lèi)名(縮放尺寸)

*注:

為何沒(méi)有直接對(duì)border-width直接操作 是因?yàn)橛胁糠謾C(jī)型不支持0.5px這樣的值 會(huì)被當(dāng)成0來(lái)處理 故用縮放來(lái)實(shí)現(xiàn)。

文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請(qǐng)注明本文地址:http://systransis.cn/yun/114940.html

相關(guān)文章

  • 移動(dòng)H5頁(yè)面中1px邊框的幾種解決方法

    問(wèn)題提出 這是一個(gè)比較老的問(wèn)題了,我第一次注意到的時(shí)候,是UI設(shè)計(jì)師來(lái)找我麻煩,emmm那時(shí)候我才初入前端職場(chǎng),啥也不懂啊啊啊啊啊,情形是這樣的:設(shè)計(jì)師拿著手機(jī)過(guò)來(lái):這些邊框都粗了啊,我的設(shè)計(jì)稿上是1px的我:????我寫(xiě)的是1px呀,不信你看。(說(shuō)著拿出了css代碼設(shè)計(jì)師:不對(duì)啊我眼睛看來(lái)這個(gè)邊框比我設(shè)計(jì)稿上粗很多,看起來(lái)好奇怪(emmm果然像素眼我:那我把它改成0.5px你看看(邊說(shuō)邊改了代碼...

    enda 評(píng)論0 收藏0
  • 移動(dòng)H5頁(yè)面中1px邊框的幾種解決方法

    問(wèn)題提出 這是一個(gè)比較老的問(wèn)題了,我第一次注意到的時(shí)候,是UI設(shè)計(jì)師來(lái)找我麻煩,emmm那時(shí)候我才初入前端職場(chǎng),啥也不懂啊啊啊啊啊,情形是這樣的:設(shè)計(jì)師拿著手機(jī)過(guò)來(lái):這些邊框都粗了啊,我的設(shè)計(jì)稿上是1px的我:????我寫(xiě)的是1px呀,不信你看。(說(shuō)著拿出了css代碼設(shè)計(jì)師:不對(duì)啊我眼睛看來(lái)這個(gè)邊框比我設(shè)計(jì)稿上粗很多,看起來(lái)好奇怪(emmm果然像素眼我:那我把它改成0.5px你看看(邊說(shuō)邊改了代碼...

    shengguo 評(píng)論0 收藏0

發(fā)表評(píng)論

0條評(píng)論

最新活動(dòng)
閱讀需要支付1元查看
<