實現 1畫素border

2021-09-07 09:45:19 字數 1745 閱讀 3055

border-1px($color)

position: relative

&:after

display: block

position: absolute

left: 0

bottom: 0

width: 100%

border-top: 1px solid $color

content: ' '

border-none()

&:after

display: none

使用時首先

@import "../../common/stylus/mixin.styl";
為匹配不同裝置,定義基本樣式

@media (-webkit-min-device-pixel-ratio: 1.5),(min-device-pixel-ratio: 1.5)

.border-1px

&::after

-webkit-transform: scaley(0.7)

transform: scaley(0.7)

@media (-webkit-min-device-pixel-ratio: 2),(min-device-pixel-ratio: 2)

.border-1px

&::after

-webkit-transform: scaley(0.5)

transform: scaley(0.5)

**:

注: 先定義乙個 mixin (mixin 是 css 預處理器提供的乙個方法,它可以通過定義乙個函式,比如 border-1px($color),在其中定義的css**,可以在其他css中直接通過呼叫函式來引用)

通過對偽類的縮放,來實現在不同螢幕下的1px 效果。

為了方便依賴所有的公共樣式,建立乙個 index.scss ,引入其他的公共scss,當應用到其他 css 時,直接引入index即可(@import "./index")

* 解決1px問題

* 判斷在不同 dpr 下的顯示情況

*/@media (-webkit-min-device-pixel-ratio: 1.5),(min-device-pixel-ratio: 1.5)

}}@media (-webkit-min-device-pixel-ratio: 2),(min-device-pixel-ratio: 2)

}}/** * 等同於

注:@import 後面的 ';'不能省略,否則會報錯

移動端設定border的1px畫素解決方案

可能有人會問,設定邊框1px問題,直接 border 1px soild ccc 不就完事了,為什麼需要這麼麻煩?因為移動端的dpr裝置畫素比不同,直接設定會出現邊框加粗問題,親們可以自行測試,這裡不做過多闡述。下面直接上解決方案。1.為了方便通用,在base.scss檔案中 使用 mixin 定義...

手機1畫素線粗 實現移動端1畫素線 stylus

1px的邊框實現思路 給準備加1px的元素相對定位 給該元素加乙個偽元素,給偽元素乙個絕對定位 然後把元素的寬高按照dpr相對應的倍數等比例縮放。css3中的transfrom scale 下邊用stylus實現移動端的1畫素邊框 border border width 1px,border col...

手機實現1畫素邊框顯示

問題需求 頁面設定邊框1畫素時,電腦端顯示是正常的,手機端會顯示比正常粗一點。1 給需要顯示1畫素邊框的元素新增偽類元素,設定邊框為1px。注意 這個時候和直接在元素本身設定邊框是一樣的效果,達不到真正顯示1畫素的問題。2 然後用media 查詢,設定偽類元素的縮放比例。media only scr...