移動端常見佈局:javascript
1.流式佈局html
高度固定,寬度自適應java
2.響應式佈局git
可以用一套代碼適應不一樣尺寸屏幕github
3.rem佈局佈局
寬高自適應,能實現整個頁面像一張圖片同樣縮放且不失真的效果。字體
rem佈局:flex
簡單實例:ui
1.em佈局spa
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <meta http-equiv="X-UA-Compatible" content="ie=edge"> <title>Document</title> <style> div { font-size: 100px; width: 4em; /* 400px */ height: 4em; /* 400px */ background-color: pink; } </style> </head> <body> <div>我是400*400的盒子</div> </body> </html>
效果如圖:div內字體大小爲100px
2.rem佈局
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <meta http-equiv="X-UA-Compatible" content="ie=edge"> <title>Document</title> <style> html { font-size: 100px; } div { font-size: 16px; width: 4rem; /* 400px */ height: 4rem; /* 400px */ background-color: pink; } </style> </head> <body> <div>我是400*400的盒子</div> </body> </html>
效果如圖:div內字體大小爲16px
rem佈局實現自適應:
1.配合媒體查詢
<!DOCTYPE html> <html lang="zh-CN"> <head> <meta charset="UTF-8"> <title>Title</title> <meta name="viewport" content="width=device-width, user-scalable=no, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0"> <style> /* 一個盒子, 在 750 屏幕上顯示 200*200, 在375屏幕上顯示 100*100 */ /* 375px屏幕中, font-size: 50px */ @media screen and (width: 375px){ html { font-size: 50px; } } /* 750px屏幕中, font-size: 100px */ @media screen and (width: 750px){ html { font-size: 100px; } } div { width: 2rem; height: 2rem; background-color: pink; } </style> </head> <body> <div></div> </body> </html>
2.經過javascript實現
<!DOCTYPE html> <html lang="zh-CN"> <head> <meta charset="UTF-8"> <title>Title</title> <style> body { font-size: 16px; } /* 設計圖尺寸 640px 基準值 100px */ div { width: 2rem; height: 2rem; font-size: .3rem; background-color: pink; } </style> </head> <body> <div>我是自適應的文字</div> <script> var design = 640; var base = 100; function responsive() { var width = window.innerWidth; // 所求font-size = 當前屏幕寬度 / 設計圖 * 基準值 var size = width / design * base; document.documentElement.style.fontSize = size + "px"; } responsive(); window.addEventListener("resize", responsive); </script> </body> </html>
3.使用flexible.js
flexible.js是淘寶移動適配方案,基本原理與上面的經過javascript實現自適應相同,可是作了不少兼容性處理,其中定義:基準值(即html根元素字體大小) = 設計圖尺寸 / 10。使用的時候直接在文件中引入包便可。
下載地址:https://github.com/amfe/lib-flexible