亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 網站 > WEB開發 > 正文

移動端開發1px線的理解與解決辦法

2024-04-27 13:53:51
字體:
來源:轉載
供稿:網友

1px線變粗的原因

在做移動端項目時,常常是根據設計圖設置元素節點的大小和樣式,但是有時候根據設計圖寫出來的樣式還是不如人意,雖然表面上看起來和設計稿是一樣的,可是就是沒設計稿那種感覺,而且莫名還有一種山寨的氣息,UI審查的時候也常常會覺得分割線或則邊框線太粗了,要更細一點,但是一看代碼,已經是1px了,為什么看著還是那么粗呢?

要知道問題的原因首先要了解一下幾個概念:

(1)物理像素(physical pixel)

一個物理像素是顯示器(手機屏幕)上最小的物理顯示單元(像素顆粒),在操作系統的調度下,每一個設備像素都有自己的顏色值和亮度值。 如:iPhone6上就有750*1334個物理像素顆粒。

(2)設備獨立像素(density-independent pixel)

設備獨立像素(也叫密度無關像素),可以認為是計算機坐標系統中得一個點,這個點代表一個可以由程序使用的虛擬像素(比如:css像素),有時我們也說成是邏輯像素。然后由相關系統轉換為物理像素。所以說,物理像素和設備獨立像素之間存在著一定的對應關系,這就是接下來要說的設備像素比。

(3)設備像素比(device pixel ratio )簡稱dpr

設備像素比(簡稱dpr)定義了物理像素和設備獨立像素的對應關系。它的值可以按如下的公式的得到:

設備像素比(dpr)=物理像素/邏輯像素(px) // 在某一方向上,x方向或者y方向,下圖dpr=2

移動端,1px,線

知道了設備像素比,我們就大概知道了1px線變粗的原因。簡單來說就是手機屏幕分辨率越來越高了,同樣大小的一個手機,它的實際物理像素數更多了。因為不同的移動設備有不同的像素密度,所以我們所寫的1px在不同的移動設備上等于這個移動設備的1px?,F在做移動端開發時一般都要加上一句話:

<meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=no">

這句話定義了本頁面的viewport的寬度為設備寬度,初始縮放值和最大縮放值都為1,并禁止了用戶縮放。

viewport的設置和屏幕物理分辨率是按比例而不是相同的,移動端window對象有個devicePixelRatio屬性,它表示設備物理像素和css像素的比例,在retina屏的iphone手機上,這個值為2或3, css里寫的1px長度映射到物理像素上就有2px或3px。通過設置viewport,可以改變css中的1px用多少物理像素來渲染,設置了不同的viewport,當然1px的線條看起來粗細不一致。

1px線變粗的解決方法

偽類 + scale

這種方法的原理就是把原來元素的border去掉,然后用 :before 或者 :after 重做 border ,原先的元素相對定位,新做的 border 絕對,定位使用 transform 的 scale 把線條高度縮小一半,新邊框就相當于0.5px了。代碼如下:

.scale{  position: relative;  border:none;}.scale:after{  content: '';  position: absolute;  bottom: 0;  background: #000;  width: 100%;  height: 1px;  -webkit-transform: scaleY(0.5);  transform: scaleY(0.5);  -webkit-transform-origin: 0 0;  transform-origin: 0 0;}

使用flexible.js

前面已經說過1px變粗的原因就在于一刀切的設置viewport寬度,如果能把viewport寬度設置為實際的設備物理寬度,css里的1px不就等于實際1px長了么。 flexible.js的原理就是這樣,先獲取設備縮放比devicePixelRatio,然后根據縮放比來動態設定viewport的值,這樣導致的結果就是無論是哪個設備,1px所表示的永遠是1個設備像素,即該設備的最小像素。

//devicePixelRatio=2時,輸出meta如下<meta name="viewport" content="initial-scale=0.5, maximum-scale=0.5, minimum-scale=0.5, user-scalable=no">//devicePixelRatio=3時,輸出meta如下<meta name="viewport" content="initial-scale=0.3333333333333333, maximum-scale=0.3333333333333333, minimum-scale=0.3333333333333333, user-scalable=no">

使用meta viewport控制

原理如上。代碼如下:

//1px像素線條<meta name="viewport" content="width=device-width,initial-scale=1.0,user-scalable=0">//0.5像素線條<meta name="viewport" content="width=device-width,initial-scale=0.5,user-scalable=0">

使用box-shadow模擬邊框

利用css 對陰影處理的方式實現0.5px的效果。代碼如下:

.box-shadow-1px {  box-shadow: inset 0px -1px 1px -1px #c8c7cc;}

使用border-image

首先需要自己制作一個0.5像素的線條作為線條背景圖片。。代碼如下:

p{    border-width: 0 0 1px 0;    border-image: imageUrl 2 0 round;}

利用背景漸變linear-gradient

利用linear-gradient利用背景圖片漸變,從有色到透明,默認方向從上到下,從0deg到50%的地方顏色是邊框顏色,然后下邊一半顏色就是透明了。然后設置背景寬度100%,高度是1px,再去掉repeat,所以有顏色的就是0.5px的邊框。代碼如下:

 

.bg_border {    background-image: linear-gradient(0deg,black 50%,transparent 50%);    background-size: 100% 1px;    background-repeat: no-repeat;}

總結

以上就是這篇文章的全部內容了,希望本文的內容對大家的學習或者工作具有一定的參考學習價值,謝謝大家對VeVb武林網的支持。


注:相關教程知識閱讀請移步到手機網站開發頻道。
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
国产精品91视频| 热re91久久精品国99热蜜臀| 欧美性高潮床叫视频| 久久精品一偷一偷国产| 日韩欧美亚洲综合| 成人黄色在线免费| 国产精品流白浆视频| www.亚洲天堂| 欧美重口另类videos人妖| 欧美激情小视频| 97婷婷涩涩精品一区| 久久久久久久亚洲精品| 欧美一区二区三区免费观看| 欧美黑人性猛交| 伊人久久综合97精品| 国内精品免费午夜毛片| 97香蕉超级碰碰久久免费的优势| 国内精品久久久久影院优| 热re91久久精品国99热蜜臀| 亚洲精品综合久久中文字幕| 欧美日韩成人免费| 国产丝袜一区二区三区| 日韩精品欧美激情| 中文字幕欧美在线| 国产成人精品午夜| 欧美成人免费全部观看天天性色| 亚洲精品国产精品久久清纯直播| 国产噜噜噜噜噜久久久久久久久| 91sao在线观看国产| 国产一区二区免费| 久久久午夜视频| 欧美亚洲另类制服自拍| 亚洲欧洲国产伦综合| 欧美制服第一页| 久久精品青青大伊人av| 在线播放日韩精品| 日韩av观看网址| 91地址最新发布| 日韩视频一区在线| 丁香五六月婷婷久久激情| 亚洲精品www久久久久久广东| 亚洲国产精品久久久久秋霞不卡| 色婷婷av一区二区三区久久| 久久久精品2019中文字幕神马| 91禁外国网站| 国产成人福利夜色影视| 日韩av在线一区| 中文字幕亚洲情99在线| 黑人狂躁日本妞一区二区三区| 国产日韩专区在线| 国产在线观看91精品一区| 国产精品看片资源| 26uuu另类亚洲欧美日本老年| 国产成人久久久| 国产欧美精品日韩| 亚洲精品丝袜日韩| 亚洲一区二区少妇| 一区二区欧美日韩视频| 精品国产精品三级精品av网址| 一区二区日韩精品| 亚洲黄色www| www.日韩av.com| 国产精品mp4| 国产精品久久久久久久7电影| 狠狠色噜噜狠狠狠狠97| 国产美女搞久久| 成年无码av片在线| 日韩中文在线观看| 亚洲最大成人网色| 亚洲色图第三页| 69**夜色精品国产69乱| 国产免费一区二区三区在线观看| 亚洲国产日韩欧美综合久久| 国产精品igao视频| 国产精品久久999| 理论片在线不卡免费观看| 亚洲欧美国产精品va在线观看| 欧美另类在线观看| 国产精品美女久久久久av超清| 久久精品免费播放| 17婷婷久久www| 91精品国产91久久久久| 国产91在线视频| 不卡av在线网站| 成人免费激情视频| 国产99视频精品免视看7| 亚洲国产婷婷香蕉久久久久久| 欧美一级大胆视频| 亚洲老头同性xxxxx| 欧美视频中文字幕在线| 欧美成人免费在线观看| 精品人伦一区二区三区蜜桃网站| 亚洲香蕉在线观看| 日韩成人在线视频网站| 国产成人啪精品视频免费网| 日韩精品中文字| 久久久91精品国产| 国产免费久久av| 国产区精品视频| 亚洲成人精品视频在线观看| 亚洲一区二区免费在线| 国产精品一久久香蕉国产线看观看| 欧美大肥婆大肥bbbbb| 91久久久久久久一区二区| 成人h猎奇视频网站| 91av在线精品| 55夜色66夜色国产精品视频| 久久精品中文字幕一区| 亚洲高清免费观看高清完整版| 久久精品91久久香蕉加勒比| 久久激情视频免费观看| www.亚洲男人天堂| 欧美日韩国产精品一区二区不卡中文| 欧美黑人又粗大| 久久综合国产精品台湾中文娱乐网| 91色视频在线观看| 91精品国产91久久久久久不卡| 日韩精品www| 成人免费视频97| 久久久久久亚洲精品中文字幕| 欧美激情xxxx| 岛国av一区二区在线在线观看| 亚洲欧美激情在线视频| 精品国产31久久久久久| 久久天天躁狠狠躁夜夜躁| 日本精品免费观看| 欧美夫妻性生活xx| 国产香蕉97碰碰久久人人| 日韩精品免费视频| 欧美日韩一区二区三区| 狠狠躁夜夜躁久久躁别揉| 亚洲精品久久久久久久久久久| 亚洲精品成a人在线观看| 91九色视频在线| 有码中文亚洲精品| 精品一区二区三区四区在线| 97精品久久久中文字幕免费| 欧美成人精品在线观看| 亚洲黄色av女优在线观看| 久久中文字幕视频| 激情久久av一区av二区av三区| 日韩在线国产精品| 国产性猛交xxxx免费看久久| 国产精品永久免费观看| 欧美性猛交xxxx免费看久久久| 国产欧美va欧美va香蕉在| 欧美日韩在线观看视频| 精品日韩中文字幕| 国产日韩欧美视频| 日韩一区二区在线视频| 成人精品福利视频| 96精品视频在线| 久久色精品视频| 欧美一级在线播放| 成人性教育视频在线观看| 视频在线观看一区二区| 欧美色播在线播放| 国产一区二区成人| 26uuu另类亚洲欧美日本一| 亚洲欧美另类自拍| 精品一区二区亚洲| 欧美精品videosex性欧美| 国产精品一区二区性色av| 国产精品视频网|