css 移動端像素,rem適配詳解


 1 <!DOCTYPE html>
 2 <html>
 3     <head>
 4         <meta charset="utf-8">
 5         <title>像素</title>
 6         <style>
 7             
 8             .box1{
 9                 width: 200px;
10                 height: 200px;
11                 background-color: #bfa;
12             }
13             
14         </style>
15     </head>
16     <body>
17         <div class="box1">我是div</div>
18         <!-- 
19             像素(px)
20                 - 屏幕是由一個一個發光的小點構成的,每個小點都是一個像素
21                 - 以上的概念中的像素屬於 “物理像素”
22                 - 在編寫網頁時我們所使用的像素,稱為“CSS像素”
23                 - 我們所使用的CSS像素最終顯示時,都會被瀏覽器轉換為物理像素
24                     有時候是1個CSS像素轉換為1個物理像素 (1:1)
25                     而有時候是1個CSS像素 轉換為多個物理像素(1:多)
26                     
27                 - 設備分辨率的查詢網站
28                     https://material.io/resources/devices/
29                     
30                 - 分辨率
31                     - 顯示面積相同,分辨率越高,像素點就越小
32                     14寸 1366 x 768
33                     14寸 1920 x 1080
34                     
35             iphone6 4.7寸 750 x 1334 視口默認寬度980px  CSS像素和物理像素比:980:750
36             6plus   5.5寸 1080 x 1920
37                 - 所以在移動設備中,像素都是非常非常小的(視網膜屏)
38                 
39             一個pc端的網站,如何在移動端呈現的呢?
40                 - 當通過移動設備去訪問一個網頁時,
41                     為了可以完整的將網頁呈現,
42                         移動設備通常會將視口大小設置為980px(CSS像素)
43                         如果網頁的寬度大於980px,移動端瀏覽器為了完整的呈現網頁
44                         會對網頁進行縮放,使網頁可以完整顯示
45                         
46                 - 由於pc端的網站在移動端呈現時,實際的像素比都在1:0.6以下,
47                     同時由於移動設備的像素本來就很小,這樣就導致pc端頁面在
48                     移動設備中呈現時會有一個非常非常不好效果
49                     
50                 - 如何確保網頁在移動端中有一個比較好的瀏覽效果呢?
51                     
52                     
53                     
54          -->
55     </body>
56 </html>

 

 1 <!DOCTYPE html>
 2 <html>
 3     <head>
 4         <meta charset="utf-8">
 5         <!-- 可以通過meta標簽來設置視口的大小 -->
 6         <!-- 可以通過修改視口的大小來改變像素比
 7             以iphone6 為例,視口大小如果設置375px
 8                 它的物理像素是 750px
 9                 像素比 375:750 = 1:2
10                 
11             每一部手機都會存在一個最佳的像素比,
12                 當它像素比處在該值時,會有一個最佳的瀏覽效果
13                 但是由於機型不同,這個像素比例也不同
14                 比如:iPhone6的最佳像素比 1:2
15                 
16             將手機的像素比設置為最佳像素比的視口大小,稱為完美視口
17             所以我們編寫移動端的頁面時第一件事就是要設置瀏覽器的完美視口
18             
19             視口的設置只會影響移動設備,不會在pc端起作用
20          -->
21         <!-- <meta name="viewport" content="width=device-width"> -->
22         <!-- 
23             meta:vp + table 自動生成完美視口
24          -->
25         <meta name="viewport" content="width=device-width, initial-scale=1.0">
26         
27         <title></title>
28         <style>
29             *{
30                 margin: 0;
31                 padding: 0;
32             }
33             .box1{
34                 width: 375px;
35                 height: 200px;
36                 background-color: #bfa;
37             }
38             
39         </style>
40     </head>
41     <body>
42         
43         <div class="box1"></div>
44         <!-- 
45             像素
46                 1.像素分為兩種物理像素和CSS像素
47                 2.不同的設備中物理像素的大小也不相同
48                 3.CSS像素和物理像素存在一定的比例
49                 4.移動端默認的視口大小為980像素(CSS像素)
50                 5.PC端頁面在移動設備顯示的效果不好
51                     原因是默認的相比太低了
52                     
53             解決移動端的頁面問題
54                 1.PC端的網頁不適合在移動端顯示(內容太多)
55                 2.如果要在移動端有一個比較好顯示效果,
56                     必須要修改CSS像素和物理像素的比例
57                     
58             像素比是由什么決定的?
59                 像素比:視口寬度 : 設備物理像素
60                         980           750         
61                         980           1080        
62                         
63                 需要將視口的寬度調小,以改變像素比
64          -->
65     </body>
66 </html>

 

 1 <!DOCTYPE html>
 2 <html>
 3     <head>
 4         <meta charset="utf-8">
 5         <title>移動端的適配</title>
 6         <meta name="viewport" content="width=device-width, initial-scale=1.0">
 7         
 8         <style>
 9             *{
10                 margin: 0;
11                 padding: 0;
12             }
13             
14             html{
15                 /* 設置html的font-size */
16                 font-size: 0.13333vw;
17                 
18                 /* 
19                     有這么一個單位,1個它就等於1個html的font-size
20                     1rem = 1 html的font-size
21                  */
22             }
23             
24             .box1{
25                 /* 
26                     由於不同設備的視口大小不同,
27                         375px在不同的移動設備中所代表的意義也不同
28                         比如:
29                             在iphone6中,視口大小為375px,所以375px就是全屏的狀態
30                             在iphone6 plus 視口大小為414px,所以375px會比全屏小一點
31                             在iphone5中,視口大小為320px,所以375px會超出屏幕,出現水平滾動條
32                         在寫移動時,像素這個單位就基本上不能用了
33                         
34                     1vw = 1%視口寬度
35                     
36                     vw的參照物永遠都是視口
37                     
38                     以750的設計圖為例
39                         100vw 相當於 750px
40                         
41                         100vw --> 750px
42                         0.13333vw --> 1px
43                         6.53333vw --> 49px
44                         4.66666vw --> 35px
45                         
46                     將 html 的字體大小 設置為 font-size: 0.13333vw;
47                         這樣意味着 1rem = 0.13333vw
48                         
49                         1rem = 1font-size(html)
50                         1font-size(html) = 0.13333vw
51                         1rem = 0.13333vw
52                         0.13333vw = 1px(設計圖)
53                         1rem = 1px(設計圖)
54                         
55                         
56                     49px * 35px 的元素    
57                  */
58                 width: 6.53333vw;
59                 height: 4.66666vw;
60                 background-color: #bfa;
61             }
62             
63             
64             .box2{
65                 /* 328 * 105 */
66                 width: 328rem;
67                 height: 105rem;
68                 background-color: pink;
69             }
70         </style>
71     </head>
72     <body>
73         
74         <div class="box1">
75             
76             
77             
78         </div>
79         
80         <div class="box2"></div>
81     </body>
82 </html>

 

 1 <!DOCTYPE html>
 2 <html>
 3     <head>
 4         <meta charset="utf-8">
 5         <title></title>
 6         <meta name="viewport" content="width=device-width, initial-scale=1.0">
 7         <style>
 8             
 9             *{
10                 margin: 0;
11                 padding: 0;
12             }
13             
14             html{
15                 /* 
16                     如果font-size不夠12px,在老版本的chrome中會被重置為12px
17                     導致適配失敗,必須要確保值要大於12px
18                     將vw值擴大40倍,得到5.333333
19                     
20                     由於在這里我們給font-size擴大了40倍,
21                         所以在使用rem,必須要讓像素除以40
22                  */
23                 font-size: 5.33333vw;
24             }
25             /* 
26                 在Chrome中,字體的大小最小0 表示沒有,
27                     可顯示的字體最小是12px,所以1-11px顯示效果是一樣的
28                     目前新版本的Chrome不會因為字體大小的問題影響到適配
29                     
30                     但是老版本Chrome,和一些移動端瀏覽器,
31                         會存在字體大小不能設置為12px以下的問題
32                         在這些瀏覽器如果將字體大小設置為12px以下時,瀏覽器會自動將其重置為12px
33                     
34              */
35             .box1{
36                 width: 18.75rem;
37                 height: 100px;
38                 background-color: #bfa;
39                 
40             }
41             
42         </style>
43     </head>
44     <body>
45         
46         <div class="box1">
47             我是一行文字
48         </div>
49         
50     </body>
51 </html>

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM