手機端顯示1px線 stylus方法

2022-07-07 08:09:06 字數 989 閱讀 1249

** 假設有個hello.vue頁面,我用的是stylus編寫css: **

......

假如這是個框

......

......

如果想在邊框下新增一條 1px 的線,通常在css裡新增屬性和值 border-bottom: 1px solid rgba(7, 17, 27, 0.1) 就能實現。

在pc端瀏覽這 1px 是真的 1px,但是在手機端瀏覽的話它就不是 1px,因為手機端有個dpr的概念,iphone6 等高解析度螢幕的物理畫素是css畫素的兩倍,所以手機上看到是 2px 的線。

想實現移動端的 1px,在這主要是利用乙個偽元素加它的縮放。

為了讓 1px 線條在專案中能夠復用,把樣式封裝在乙個函式並放在乙個stylus檔案裡。

在stylus資料夾下新建 mixin.styl,用於存放通用的混合書寫(像函式),定義好乙個名叫 border-1px 的函式,設定乙個顏色引數 $color,寫好偽元素 :after 和樣式 ,即設定一條線,相對于父元素是絕對定位 。

** mixin.styl: **

border-1px($color)

position: relative

&:after

display: block

position: absolute

left: 0

bottom: 0

width: 100%

border-top: 1px solid $color

content: ' '

hello.vue 頁面引入 mixin.styl,在要畫邊框的元素後面使用 border-1px(rgba(7, 17, 27, 0.1))

** hello.vue css部分: **

轉譯出來相當於:

手機端的1px邊框如何實現

1 把邊框設定為absolute,使用after,定義寬度為1px mixin.styl 2 通過 media,判斷不同的dpi,來改變相應的y軸寬度 base.styl 定義公共class border 1px,在用到1px邊框的地方,加上border 1px 又叫物理畫素 是顯示屏能夠控制的最小...

移動端1px實現

新增css 1px邊框時,在手機上顯示為粗線,解決辦法就是利用偽類設定1px邊框,然後根據裝置畫素比進行y軸的縮放,使其表現為真正的1px.stylus的語法 1.定義乙個函式。找到要加1px的標籤,新增定位和偽類。border 1px color position relative after d...

移動端1px問題

在移動端頁面中設定邊框為1px時,在有的裝置中可能會發現邊框比1px要粗即1培訓1px 1px 裝置畫素比dpr 裝置畫素 css畫素 某一方向上 當dpr為2時1px實際為2px iphone6 dpr為3時1px為3px inphoex 所有看起來1px就會變粗 ios8下已經支援帶小數的px值...