如何解決PC端和移動端自適應問題

這篇文章主要介紹了如何解決PC端和移動端自適應問題,具有一定借鑒價值,感興趣的朋友可以參考下,希望大家閱讀完這篇文章之后大有收獲,下面讓小編帶著大家一起了解一下。

讓客戶滿意是我們工作的目標,不斷超越客戶的期望值來自于我們對這個行業(yè)的熱愛。我們立志把好的技術通過有效、簡單的方式提供給客戶,將通過不懈努力成為客戶在信息化領域值得信任、有價值的長期合作伙伴,公司提供的服務項目有:域名注冊、雅安服務器托管、營銷軟件、網(wǎng)站建設、西雙版納網(wǎng)站維護、網(wǎng)站推廣。

做網(wǎng)頁時,我們通常需要考慮到不同電腦屏幕尺寸,以及不同手機屏幕大小等問題,解決樣式發(fā)生改變的情況,那么如何解決呢?現(xiàn)在主要是采用自適應來解決高度,寬度的,以及圖片自適應問題,下面就PC端和移動端來總結一下,通常進行自適應高度和寬度,圖片時,一般與頁面的布局存在關系。

1、最小尺寸分辨率1024*768(傳統(tǒng)17寸顯示器),則可以采用940px、960px、或者常用的980px作為最小寬度

2、1024*768之后稍大的分辨率就是1280*768了,則可以采用1200px或者1220px作為稍大的網(wǎng)頁寬度

3、支持css3、html5的高級瀏覽器可以利用CSS3 Media Queries讓網(wǎng)頁在不同分辨率下自動調節(jié)布局標簽

4、不支持css3、html5的腦殘瀏覽器特別是<=ie8系列則需要用js以及resize事件來控制html的布局標簽寬度了

5、寬度自適應需要對每個顯示模塊進行不同寬度的計算,在做html布局時需要大量的計算與適配。

6、寬度自適應為不同寬度顯示器寫布局元素時常用的css

下面我們看下,如何用js和css來自適應屏幕的大小。

一:了解高度和寬度的基礎

下面用圖片來說明:

      如何解決PC端和移動端自適應問題

網(wǎng)頁可見區(qū)域高寬為:document.body.clientHeight||document.body.clientWidth

網(wǎng)頁正文的區(qū)域高寬為:document.body.scrollHeight||document.body.scrollWidth(包括滾輪的長度)

網(wǎng)頁被卷去的上左區(qū)域:document.body.scrollTop||document.body.scrollLeft

二: css自適應高度

1.兩欄布局,左邊固定,右邊寬度自適應

  1. 方法一:   

  2. //html部分   

  3. <div id="left">左邊</div>  

  4. <div id="bodyText">正文</div>  

  5. //css部分   

  6. *{margin:0;padding:0}   

  7. #left{float:left;width:200px;background:red;}   

  8. #bodyText{margin-left:200px;background:yellow;   

  9.   

  10. 方法二:   

  11. //html部分   

  12. <div id="left">左邊</div>  

  13. <div id="body">  

  14.     <div id="bodyText">正文</div>  

  15. </div>  

  16. //css部分   

  17. #left{float:left;width:200px;background:red;margin-right:-100%;}   

  18. #body{width:100%;float:left;}   

  19. #bodyText{margin-left:200px;background:yellow;}  

 2.三欄布局,兩邊定寬,中間自適應寬度

  1. 方法一:   

  2. <div id="left">左邊</div>----注意和div的位置有關系   

  3. <div id="right">右邊</div>  

  4. <div id="center">中間</div>  

  5. //css部分   

  6. #left{width:200px;background:red;float:left;}   

  7. #center{width:auto;background:blue;}   

  8. #right{width:200px;background:yellow;float:right;}   

  9.   

  10. 方法二:   

  11. html部分:   

  12. <div id="body">  

  13.     <div id="center">中間</div>  

  14. </div>  

  15. <div id="left">左邊</div>  

  16. <div id="right">右邊</div>  

  17. css部分:   

  18. #body{width:100%;float:left;} //設置浮動和width:100%   

  19. #body #center{background:red;margin-left:200px;margin-right:300px;} //margin-left:100%的使用方法   

  20. #left{width:200px;background:yellow;margin-left:-100%;float:left}   

  21. #right{width:300px;background:blue;margin-left:-300px;float:left}   

  22. -----如果設置為margin-left:-100%,則會跑到body的左邊。   

  23. -----如果設置為margin-left:-300px(即right的寬度),則會跑到body的右邊  

3.關于最小寬度和最大寬度

這里依然結合布局來看,如下面的代碼:自適應寬度,從而改變布局。

  1. //html部分   

  2. <div id='container'>  

  3.     <div class='one'></div>  

  4.     <div class='two'></div>  

  5.     <div class='three'></div>  

  6.  </div>  

  7.   

  8. //css部分   

  9. #container{width:100%;}   

  10. .one{width:20%;background:red;}   

  11. .one,.two,.three{float:left; height:100px;}   

  12. .two{width:60%;background:yellow;}   

  13. .three{width:20%;background:blue;}   

  14. @media (max-width:800px){--如果瀏覽器小于800px   

  15.   .one{width:40%;}   

  16.   .two{width:60%}   

  17.   .three{width:100%}   

  18. }   

  19. @media (max-width:400px)--如果瀏覽器寬度小于400px   

  20. {   

  21.    .one{width:100%}   

  22.    .two{width:100%}   

  23.    .three{width:100%}   

  24.      

  25. }  

理解什么叫最小寬度和最大寬度,最小寬度指為元素設置的最小寬度,到達最小寬度后,縮放文本不會起到任何作用

最大寬度是所有元素所能達到的一個上限,不能再繼續(xù)往上增加。

三: css處理自適應高度

  1. //html部分代碼   

  2. <div id="fit"></div>  

  3. //css代碼   

  4. html,body{margin:0;height:100%;}   

  5. #fit{width:200px;background:yellow;height:100%;border:1px solid red;}   

  6.   

  7. --這里同時給html和body加樣式,是為了兼容各大瀏覽器。   

  8.    IE 處于混雜模式時,body以窗口為高度參照,body設置為100%就可以使得頁面和窗口一樣高,body里面的嵌套div也可以擴展到窗口高度,   

  9. 這樣的話可以使布局適應瀏覽器窗口大小。窗體 》body》div  (html ,body {overflow:scroll}  一層滾動條)    

  10.      但是當處于標準模式時,body以html標簽為高度參照,html標簽才以窗口為參照,所以僅僅body 100%,并不能使它的子div100% 占據(jù)整個屏幕   

  11. 還要使得 html 100%使得 html獲得窗口大小才行。窗體》html》body》div (html ,body {overflow:scroll}  兩層滾動條 ,html的滾動條從來不會用到)  

父級隨子級高度變化而自適應變化與子級隨父級高度變化而變化

  1. <div id="fj">  

  2.    我是父級   

  3.    <div id="zj1">我是子級1</div>  

  4.    <div id="zj2">我是子級2</div>  

  5. </div>  

  6. //css部分   

  7. #fj{border:4px solid red;}   

  8. #zj1{border:2px solid yellow;}   

  9. #zj2{border:2px solid blue;}----這種情況下,父級高度隨著子級div的高度自適應的改變  

如果子div使用了float屬性,此時已經(jīng)脫離標準流,父div不會隨內容的高度變化而變化,解決的辦法是在浮動的div下面,加一個空div,設置clear屬性both

  1. <div id="fj">  

  2.    我是父級   

  3.    <div id="zj1">我是子級11111111111111111111111111</div>  

  4.    <div id="zj2">我是子級222222222222222222222222222222222222222222   

  5.   222222222222222222222222222</div>  

  6.    <div id="clear" style="clear:both"></div>------如果去掉這句話,則父級div高度,不會隨著子級的高度變化而變化   

  7. </div>  

  8. //css部分   

  9. #fj{border:4px solid black;}   

  10. #zj1{border:2px solid yellow;float:left}   

  11. #zj2{border:2px solid blue;float:left}  

高度的自適應的方法還有很多,這里不再列舉。像height:auto等等。

四:js處理高度和寬度自適應問題

  1. <div id="div1" >222222222222222222222</div>  

  2. //js部分   

  3. function setHeight(obj)   

  4. {   

  5.   var temHeight=null;   

  6.   //FF   

  7.   if(window.innerHeight)   

  8.   {   

  9.     temHeight=window.innerHeight;//包括頁面高度和滾動條高度   

  10.   }   

  11.   else    

  12.   {   

  13.      temHeight=document.body&&document.body.clientHeight;   

  14.   }   

  15.   if(temHeight>document.body.clientHeight)//頁面高度   

  16.   {   

  17.      oDiv.style.height=temHeight+"px";   

  18.   }   

  19.   else   

  20.   {   

  21.     oDiv.style.height=document.body.clientHeight+"px";   

  22.   }   

  23. }   

  24. window.onload=function()   

  25. {   

  26.   var oDiv=document.getElementById("div1");   

  27.   getHeight(oDiv);   

  28. }  

寬度自適應代碼:

  1. function  setWidth(obj)   

  2. {   

  3.      var screenWidth = window.screen.width;       

  4.      var width;   

  5.      var imgURL ;   

  6.      if (screenWidth >= 1440)    

  7.      {   

  8.          width = "1400px";   

  9.          imgURL = "1400.png";//設置不同分辨率下的圖片   

  10.      }   

  11.      else if (1024 < screenWidth && screenWidth < 1440)    

  12.      {   

  13.          width = "1200px";   

  14.          imgURL = "1200.png";   

  15.      }    

  16.       else {   

  17.           width = "980px";   

  18.           imgURL = "980.png";   

  19.         }   

  20.        obj.style.width=width ;   

  21.        obj.style.backgroundImage="url(" + imgURL + ")";   

  22.   })  

五:移動端的自適應高度和寬度

移動端的相對要簡單些,首先,在網(wǎng)頁代碼的頭部,加入一行viewport標簽。

<meta name=”viewport” content=”width=device-width, initial-scale=1&Prime; />

 viewport是網(wǎng)頁默認的寬度和高度,上面的意思表示,網(wǎng)頁的寬度默認等于設備屏幕的寬度,原始縮放比例為1,即網(wǎng)頁初始大小占屏幕面積的100%。

1:由于網(wǎng)頁會根據(jù)屏幕寬度調整布局,所以不能使用絕對寬度的布局,也不能使用具有絕對寬度的元素。這一條非常重要。具體說,CSS代碼不能指定像素寬度:width:xxx px;只能指定百分比寬度:width: xx%;或者width:auto;

2:一般使用em,盡量少使用px字體

3:使用流動布局

4:自適應網(wǎng)頁設計”的核心,就是CSS3引入的media query模塊。

自動探測屏幕寬度,然后加載相應的CSS文件。

<link rel="stylesheet" type="text/css"  media="screen and (max-device-width: 400px)" href="style.css" /> -------當屏幕小于400時,就加載style.css這個文件 

5:除了用html標簽加載CSS文件,還可以在現(xiàn)有CSS文件中加載。

 @import url("style2.css") screen and (max-device-width: 800px);//當小于800px屏幕時,就加載style2.css文件

6:圖片的自動縮放,比較簡單。只要一行CSS代碼:img{ max-width: 100%;}建議根據(jù)不同的屏幕分辨率,加載不同大小像素的圖片。 

移動端的自適應,大體上差不多就這么多,主要核心是利用mediaquery,根據(jù)不同的屏幕大小,實現(xiàn)不同的布局。代碼可看上面的列子。這里不再重復寫。

感謝你能夠認真閱讀完這篇文章,希望小編分享的“如何解決PC端和移動端自適應問題”這篇文章對大家有幫助,同時也希望大家多多支持創(chuàng)新互聯(lián),關注創(chuàng)新互聯(lián)行業(yè)資訊頻道,更多相關知識等著你來學習!

網(wǎng)頁標題:如何解決PC端和移動端自適應問題
分享網(wǎng)址:http://muchs.cn/article8/ghcpop.html

成都網(wǎng)站建設公司_創(chuàng)新互聯(lián),為您提供自適應網(wǎng)站、用戶體驗、微信公眾號小程序開發(fā)、網(wǎng)站排名響應式網(wǎng)站

廣告

聲明:本網(wǎng)站發(fā)布的內容(圖片、視頻和文字)以用戶投稿、用戶轉載內容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內容未經(jīng)允許不得轉載,或轉載時需注明來源: 創(chuàng)新互聯(lián)

綿陽服務器托管