摘要:?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)
第二步:
*注:
為何沒(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
問(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ō)邊改了代碼...
問(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ō)邊改了代碼...
閱讀 834·2023-04-25 22:13
閱讀 2347·2019-08-30 15:56
閱讀 2229·2019-08-30 11:21
閱讀 657·2019-08-30 11:13
閱讀 2024·2019-08-26 14:06
閱讀 1961·2019-08-26 12:11
閱讀 2292·2019-08-23 16:55
閱讀 542·2019-08-23 15:30