国产激情自拍_国产9色视频_丁香花在线电影小说观看 _久久久久国产精品嫩草影院

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

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

2024-04-29 21:01:13
字體:
來源:轉載
供稿:網友

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。現在做移動端開發時一般都要加上一句話:

<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武林網的支持。


注:相關教程知識閱讀請移步到手機網站開發頻道。
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
国产激情自拍_国产9色视频_丁香花在线电影小说观看 _久久久久国产精品嫩草影院
久草一本av| 免费国产阿v视频在线观看| 欧美日韩一区二区三区视视频 | 欧美精品日韩少妇| 亚洲私人影吧| 黄色av网站在线免费观看| 黄网站在线观看高清免费| 国产在线视频网站| 综合图区亚洲白拍在线| 国产伦精品一区二区三区高清版禁 | 国产精品日日爱| 97最新国自产拍视频在线完整在线看 | 国产福利图片| 不卡av免费观看| 国产香蕉尹人视频在线| av在线不卡网站| 国产视频2区| 青青九九免费视频在线| 国产亚洲精品一区二区在线观看 | 成人欧美亚洲| 国产小视频免费在线网址| 91亚洲欧美| 黄色国产在线| 天天插天天狠天天透| 国产三级视频| 久久久久久久久久久久久91| 国产99re| 国产亚洲精品久久久网站好莱| av在线1区2区| 精品一区二区三区在线观看l| 久久久久久91精品色婷婷| 亚洲午夜久久久久中文字幕| 国产精品bbw一区二区三区| 免费在线黄色av| 99免费视频| 国产一二三四| 超碰免费在线观看| 欧美专区日韩| 另类专区欧美| 久久精品最新免费国产成人 | 永久免费在线观看| 国产成在线观看免费视频| 日本中文字幕在线看| 开心丁香婷婷深爱五月| www.xxx黄| 欧美专区日韩| 免费观看久久久久| 成年黄网站在线观看免费| 青青草视频免费在线观看| 99热99re6国产在线播放| 2019天天操夜夜操| 精品无吗乱吗av国产爱色| 精品国产二区三区| 四虎免费播放| 国精一区二区三区| 91av久久| 精品99又大又爽又硬少妇毛片| 精品视频麻豆入口| 四虎中文字幕| 最近免费中文字幕大全免费第三页| 中文字幕在线看精品乱码| 国产一级免费黄色片| 福利视频在线导航| 国产三线在线| 国产福利在线| 国产专区在线| 在线观看av网站永久| 高潮白浆视频| 国产成人夜间影院在线观看| 免费黄色网页在线观看| 国产一二三区在线观看| eeuss影院www在线观看| 中文字幕第一页在线| 亚洲精品视频区| 最新av免费看| 欧美一级久久久久久久久大| 国产极品美女到高潮| 麻豆国产在线播放| 在线一区二区三区精品| 九色福利视频| 97一区二区三区| 国产一卡二卡3卡4卡四卡在线| 精品美女在线观看视频在线观看| 欧美啪啪精品| 日本免费黄色| 国产精品ⅴa有声小说| 牛牛精品视频在线| 在线国产1区| 国产精品不卡一区二区三区在线观看| 欧美精品小视频| 香蕉视频在线看| 97一区二区三区| 精品亚洲成a人片在线观看| 国产麻豆精品视频一区二区 | 精品a在线观看| 尤物视频网站在线观看| 在线一区二区三区精品| 国产日韩精品在线看| 国产麻豆视频| 国产在线观看18| 九九热在线免费视频| 另类高清dbsm日本tvav| a视频免费看| www中文字幕在线观看| 日本视频三区| 欧美a免费在线| 国产美女视频一区二区三区| 久久五月精品| 青青草在线免费观看| www.91在线播放| 激情在线视频播放| 高潮毛片在线观看| 五月综合激情在线| 国产网站免费观看| 999国产在线视频| jizz性欧美| 粉嫩av一区| 国产高清视频免费最新在线| ·天天天天操| а√最新版在线天堂| 国产裸舞福利在线视频合集 | 97影院理论午夜| 97影院秋霞午夜在线观看| av在线二区| 午夜av电影| 亚洲成人电视网| 国内自拍视频在线看免费观看| 国产精品剧情一区二区在线观看 | 日韩国产成人| 国产一卡2卡3卡免费网站| 中文字幕国产欧美| 最新av免费看| av小说在线| 国产欧美一区二区三区小说| 日本久久网站| 永久免费在线观看| 国产日韩欧美一区二区三区视频| 性网站在线播放| 国产xxxxx| 丁香花高清视频完整版在线观看| 国产三级视频在线播放线观看| av丝袜在线| 国产对白叫床清晰在线播放| 免费看的av| 亚洲人av在线| 国产特级淫片免费看| www.av在线视频| 在线三级av| 18 激情视频在线| 国产一级在线观看| 国产美女av| 国产精品一区二区婷婷| xxxx视频在线| jizz在线免费观看| 在线免费观看黄色片| 国产日产一区二区| 中文字幕毛片| 国产日本视频| 国产精品久久麻豆| 国产图片综合| 国产女王在线**视频| 国产麻豆精品视频一区二区 | 国产美女视频网站| 九色成人在线| 好男人免费精品视频| 国产精品亚洲第五区在线| 欧美高清xxxx性| 免费的黄网站在线观看| 久久五月精品| 国产一级片麻豆| 国产区卡一卡二卡三乱码免费| 国产欧美日韩精品综合| 国产高清免费av在线| 18av在线视频| 在线国产1区| 可以免费看污视频的网站 | 免费中文字幕| 国产中文字幕在线| 国产偷窥老熟盗摄视频| 精品剧情v国产在线观看| av在线免费观看网| 丁香花高清视频完整版在线观看| 国产麻豆麻豆| 精品国产免费观看一区| 欧美高清视频| 国产日韩欧美精品一区二区三区 | 四虎精品成人a在线观看| 日本成人网址| 99热最新网址| 一区二区三区免费视频网站| 免费高清av| 在线国产福利网站| 国产美女视频一区二区二三区| 国产精品久久在线| www.久草.com| 国产精品视频h| 九九热在线视频免费观看| 18 激情视频在线| 最近中文字幕mv免费高清在线| av人人综合网|