HTML5移動端實現自適應


1. 添加meta標簽:viewport

<meta name="viewport" content="width=device-width,initial-scale=1.0, minimum-scale=1.0, maximum-scale=1.0, user-scalable=no"/>

2. 將下面代碼添加到需要的頁面中:

 1 (function flexible (window, document) {
 2   var docEl = document.documentElement
 3   var dpr = window.devicePixelRatio || 1
 4 
 5   // adjust body font size
 6   function setBodyFontSize () {
 7     if (document.body) {
 8       document.body.style.fontSize = (12 * dpr) + 'px'
 9     }
10     else {
11       document.addEventListener('DOMContentLoaded', setBodyFontSize)
12     }
13   }
14   setBodyFontSize();
15 
16   // set 1rem = viewWidth / 10
17   function setRemUnit () {
18     var rem = docEl.clientWidth / 10
19     docEl.style.fontSize = rem + 'px'
20   }
21 
22   setRemUnit()
23 
24   // reset rem unit on page resize
25   window.addEventListener('resize', setRemUnit)
26   window.addEventListener('pageshow', function (e) {
27     if (e.persisted) {
28       setRemUnit()
29     }
30   })
31 
32   // detect 0.5px supports
33   if (dpr >= 2) {
34     var fakeBody = document.createElement('body')
35     var testElement = document.createElement('div')
36     testElement.style.border = '.5px solid transparent'
37     fakeBody.appendChild(testElement)
38     docEl.appendChild(fakeBody)
39     if (testElement.offsetHeight === 1) {
40       docEl.classList.add('hairlines')
41     }
42     docEl.removeChild(fakeBody)
43   }
44 }(window, document))

 

3. 尺寸默認大小

引入文件后會發現html這個根的font-size在iphone6的情況下37.5px,按照尺寸就可以進行布局了,當然布局也是rem單位

簡單來說,你的盒子假設是50px,那就是50/37.5=1.333333rem。字體是16px,那就是16/37.5=0.426666rem。


免責聲明!

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



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