摘要:問題描述為了適配各種屏幕,我們寫代碼時一般使用設備獨立像素來對頁面進行布局。對此有如下解決方案這種方式可以滿足各種場景。
問題描述:
為了適配各種屏幕,我們寫代碼時一般使用設備獨立像素來對頁面進行布局。
而在設備像素比大于 1的屏幕上,我們寫的 1px實際上是被多個物理像素渲染,這就會出現 1px在有些屏幕上看起來很粗的現象。
對此有如下解決方案:
@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); } } } } }
這種方式可以滿足各種場景。
使用方式:
第一步:@include border-1px(blue, all);引入由mixin定義的代碼塊(創建偽類 模擬border)
第二步:
*注:
為何沒有直接對border-width直接操作 是因為有部分機型不支持0.5px這樣的值 會被當成0來處理 故用縮放來實現。
文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。
轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/114940.html
問題提出 這是一個比較老的問題了,我第一次注意到的時候,是UI設計師來找我麻煩,emmm那時候我才初入前端職場,啥也不懂啊啊啊啊啊,情形是這樣的:設計師拿著手機過來:這些邊框都粗了啊,我的設計稿上是1px的我:????我寫的是1px呀,不信你看。(說著拿出了css代碼設計師:不對啊我眼睛看來這個邊框比我設計稿上粗很多,看起來好奇怪(emmm果然像素眼我:那我把它改成0.5px你看看(邊說邊改了代碼...
問題提出 這是一個比較老的問題了,我第一次注意到的時候,是UI設計師來找我麻煩,emmm那時候我才初入前端職場,啥也不懂啊啊啊啊啊,情形是這樣的:設計師拿著手機過來:這些邊框都粗了啊,我的設計稿上是1px的我:????我寫的是1px呀,不信你看。(說著拿出了css代碼設計師:不對啊我眼睛看來這個邊框比我設計稿上粗很多,看起來好奇怪(emmm果然像素眼我:那我把它改成0.5px你看看(邊說邊改了代碼...
閱讀 817·2023-04-25 22:13
閱讀 2335·2019-08-30 15:56
閱讀 2217·2019-08-30 11:21
閱讀 650·2019-08-30 11:13
閱讀 2014·2019-08-26 14:06
閱讀 1949·2019-08-26 12:11
閱讀 2282·2019-08-23 16:55
閱讀 530·2019-08-23 15:30