前端常見的適配方式的方法


作為一個真正的前端工作者適配是一個老生常談的問題,那么今天給大家總結一下在工作當中常用做適配的方式。

一、固定布局(pc端)(靜態布局)

以像素作為頁面的基本單位,不管設備和瀏覽器寬度,只設計一套尺寸

二、根據不同根據不同的分辨率,加載不同的CSS樣式文件(可切換的固定布局)自適應布局

 

1、<script>
// 分辨率大於等於1680,大部分為1920的情況下,調用此css
if(window.screen.width >= 1680){
document.write('<link rel="stylesheet" href="css/index_1920.css">');
}
// 分辨率再在1600-1680的情況下,調用此css
else if(window.screen.width >= 1600){
document.write('<link rel="stylesheet" href="css/index_1600.css">');
}
// 分辨率小於1600的情況下,調用此css
else{
document.write('<link rel="stylesheet" href="css/index.css">');
}
</script>

注意:注意這里的js一定要寫在<head></head>標簽里面,這樣在加載頁面內容之前,可以提前把css樣式表加載出來

2、媒體查詢

媒體查詢可以讓我們根據設備顯示器的特性(如視口寬度、屏幕比例、設備方向:橫向或縱向)為其設定CSS樣式,媒體查詢由媒體類型和一個或多個檢測媒體特性的條件表達式組成。

link元素中的CSS媒體查詢

<link rel="stylesheet" media="(max-width: 800px)" href="example.css" />

css3

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

viewport:視口

width=device-width:就將布局視口設置成了理想的視口。

initial-scale:[0,10]  初始縮放比例,1表示不縮放

maximum-scale:[0,10]  最小縮放比例

maximum-scale: [0,10]  最大縮放比例

user-scalable: yes/no  是否允許手動縮放頁面,默認值為yes

語法:

@media mediatype and|not|only (media feature) {
    CSS-Code;
}

第一種方法是css2媒體查詢用法,最大的弊端是他會增加頁面http的請求次數,增加了頁面負擔,

我們一般用第二種方法CSS3把樣式都寫在一個文件里面才是最佳的方法。

但是媒體查詢的缺點也很明顯,如果在瀏覽器大小改變時,需要改變的樣式太多,那么多套樣式代碼會很繁瑣。

 

三、rem布局(彈性布局)移動端

rem(font size of the root element)是指相對於根元素 (html)的字體大小的單位。

1、媒體查詢結合rem布局

媒體查詢動態修改根元素的大小,使得rem 一直在跟着變化,響應式就成功了

為什么使用媒體查詢結合rem布局

一個物體在一個超大空間中顯得很小,但是在小的空間存放不下,為使得頁面布局不管在什么設備上都是正常,協調的情況,就會采用媒體查詢 + rem,來根據不同的設備去相應的改變元素的大小。

媒體查詢結合rem布局的缺點

  計算起來太繁瑣

2、flexble.js和rem布局:

用法:首先在頁面導入flexible.js導入<script src="js/flexible.js"></script>去掉mete標簽(禁止縮放)的設置

當設計圖為750px;從設計圖量出header為88px;

css設計為header的height 88/100=0.88rem;

3、rem+VW布局

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

為了方便計算可把html中font-size設置成100px;但是100px固定大小不會自動適配。所以把100px轉換成vw  

100px=?vw等於他的視口寬度

假如:設備:640px  dpr:2   320px

因為 100vw=320px

所以 1vw=3.2px;

所以 100px=31.25vw

假如 設備750px dpr為2 375px

因為 100vw=375px;

所以 1vw=3.75px;

所以 100px=26.67vw

當設備640px :31.25vw

當設備750px :26.67vw

注意文字要單獨設置單位為px,否則文字為100px太大,要用媒體查詢的方式改變文字大小。

優點:理想狀態是所有屏幕的高寬比和最初的設計高寬比一樣,或者相差不多,完美適應。

缺點:這種rem+js只不過是寬度自適應,高度沒有做到自適應,一些對高度,或者元素間距要求比較高的設計,則這種布局沒有太大的意義。如果只是寬度自適應,更推薦響應式設計。

四、百分比布局  (流式布局)

以百分比作為頁面的基本單位,可以適應一定范圍內所有的尺寸的設備屏幕及瀏覽器寬度,並能完美利用有效空間展現最佳效果

五、混合式布局

同彈性布局類似,可以適應一定范圍內所有尺寸的設備屏幕及瀏覽器寬度,並能完美利用有效空間展現最佳效果;只是混合像素、和百分比兩種單位作為頁面單位

六、響應式布局

1、布局特點:每個屏幕分辨率下面會有一個布局樣式,即元素位置和大小都會變。

2、設計方法:媒體查詢+流式布局。通常使用 @media 媒體查詢 和網格系統 (Grid System) 配合相對布局單位進行布局,實際上就是綜合響應式、流動等上述技術通過 CSS 給單一網頁不同設備返回不同樣式的技術統稱。

優點:適應pc和移動端,如果足夠耐心,效果完美

缺點:(1)媒體查詢是有限的,也就是可以枚舉出來的,只能適應主流的寬高。(2)要匹配足夠多的屏幕大小,工作量不小,設計也需要多個版本。

響應式頁面在頭部會加上這一段代碼:
<meta name="applicable-device" content="pc,mobile">
<meta http-equiv="Cache-Control" content="no-transform ">


免責聲明!

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



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