em和rem都是網頁排版的相對單位html
1、rem的特色web
2、em的特色app
下面主要是使用一段js代碼,實現rem佈局,這個方案是按照1rem = 100px的比例iphone
實現設計圖上寬爲50px,高60px的按鈕,,能夠用代碼這樣實現異步
.myBtn {
width: 0.55rem;
height: 0.37rem;
}
貼出代碼佈局
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Title</title> <script> !function(e){ function t(a){ if(i[a])return i[a].exports; var n=i[a]={exports:{},id:a,loaded:!1 }; return e[a].call(n.exports,n,n.exports,t),n.loaded=!0,n.exports } var i={}; return t.m=e,t.c=i,t.p="",t(0) } ([function(e,t){ "use strict"; Object.defineProperty(t,"__esModule",{value:!0}); var i=window; t["default"]=i.flex=function(e,t){ var a=e||100,n=t||1,r=i.document, o=navigator.userAgent, d=o.match(/Android[\S\s]+AppleWebkit\/(\d{3})/i), l=o.match(/U3\/((\d+|\.){5,})/i), c=l&&parseInt(l[1].split(".").join(""),10)>=80, p=navigator.appVersion.match(/(iphone|ipad|ipod)/gi), s=i.devicePixelRatio||1;p||d&&d[1]>534||c||(s=1); var u=1/s, m=r.querySelector('meta[name="viewport"]'); m||(m=r.createElement("meta"), m.setAttribute("name","viewport"), r.head.appendChild(m)), m.setAttribute("content","width=device-width,user-scalable=no,initial-scale="+u+",maximum-scale="+u+",minimum-scale="+u), r.documentElement.style.fontSize=a/2*s*n+"px"},e.exports=t["default"]}]); flex(100, 1); </script> <!-- 字形圖標 --> <script src="https://use.fontawesome.com/f47f4563cb.js"></script> </head> <body> <div class="box"> <div style="width: 100%;height:0.88rem;background-color: #17acf6;text-align: center;line-height: 0.88rem;position: fixed;top:0;left: 0"> <span style="font-size:0.3rem;color: #fff">項目詳情</span> </div> <!--<img src="http://temp.im/640x260/444/fff" class="img-responsive">--> <div style="width: 100%;height: 1rem;background-color: #fff;line-height: 1rem;padding-left: 0.39rem;margin-bottom: 0.15rem;margin-top: 0.88rem"> <span style="font-size:0.25rem">項目名稱:某某某項目</span> </div> <div style="width: 100%;height: 4.2rem;background-color: #fff;padding: 0.39rem;margin-bottom: 0.15rem;"> <p style="font-size:0.25rem;">甲方負責人</p> <p style="font-size: 0.34rem;font-weight: bold">張某某</p> <p style="font-size: 0.25rem;font-weight: bold">中國石油化工集團公司 董事長</p> <p style="font-size:0.25rem">性別:男</p> <p style="font-size:0.25rem">年齡:35歲</p> <p style="font-size:0.25rem">電話:19809090909</p> <p style="font-size:0.25rem">生日:3月12號</p> </div> <div style="width: 100%;height: 4.2rem;background-color: #fff;padding: 0.39rem;margin-bottom:0.15rem;"> <div style="width: 100%;"> <p style="font-size:0.25rem;float: left">最新進展</p> <p style="font-size:0.25rem;float: right">技術交流--客戶說下個月簽單</p> </div> <div style="width: 100%;clear: both"> <p style="font-size:0.25rem;float: left">下一步計劃</p> <p style="font-size:0.25rem;float: right">技術交流--客戶說下個月簽單</p> </div> </div> <div class="navRoot"> <a href="#" class="navLink active"> <i class="fa fa-home navLinkIco" aria-hidden="true"></i> <span class="navLinkText">首頁</span> </a> <a href="#" class="navLink"> <i class="fa fa-home navLinkIco" aria-hidden="true"></i> <span class="navLinkText">好店</span> </a> <a href="#" class="navLink"> <i class="fa fa-home navLinkIco" aria-hidden="true"></i> <span class="navLinkText">簡單</span> </a> <a href="#" class="navLink"> <i class="fa fa-home navLinkIco" aria-hidden="true"></i> <span class="navLinkText">複雜</span> </a> <!--<a href="#" class="navLink">--> <!--<i class="fa fa-home navLinkIco" aria-hidden="true"></i>--> <!--<span class="navLinkText">異步</span>--> <!--</a>--> </div> </div> </body> <style> * { box-sizing: border-box; /* 在X5新內核Blink中,在排版頁面的時候,會主動對字體進行放大,會檢測頁面中的主字體,當某一塊字體在咱們的斷定規則中,認爲字號較小,而且是頁面中的主要字體,就會採起主動放大的操做。然而這不是咱們想要的,能夠採起給最大高度解決 */ max-height: 100000px; /*background-color: #eee;*/ } *:before, *:after { box-sizing: border-box; max-height: 100000px; } *, *:before, *:after { -webkit-tap-highlight-color: rgba(0, 0, 0, 0); } html, body, div, span, object, iframe, h1, h2, h3, h4, h5, h6, p, blockquote, pre, a, abbr, address, cite, code, del, dfn, em, img, ins, kbd, q, samp, small, strong, sub, sup, var, b, i, dl, dt, dd, ol, ul, li, fieldset, form, label, legend, table, caption, tbody, tfoot, thead, tr, th,textarea, td { border: 0 none; font-size: inherit; color: inherit; margin: 0; padding: 0; vertical-align: baseline; line-height: 2.0; } h1, h2, h3, h4, h5, h6 { font-weight: normal; } em, strong { font-style: normal; } ul, ol, li { list-style: none; } body { font-family: "Helvetica Neue",Helvetica,"PingFang SC","Hiragino Sans GB","Microsoft YaHei","\5FAE\8F6F\96C5\9ED1",Arial,sans-serif; line-height: 1.5; color: #333; background-color: #f2f2f2; font-size: 0.24rem; } a { text-decoration: none; } .box { position: relative; max-width: 10rem; margin: 0 auto; } .navRoot { position: fixed; z-index: 50; bottom: 0; left:0; width: 100%; height: 1rem; display: -webkit-box; display: -ms-flexbox; display: flex; border-top: 0.01rem solid #ccc; background:#f2f2f2; } .navLink { font-size: 0.42rem; -webkit-box-flex: 1; -ms-flex: auto; flex: auto; display: -webkit-box; display: -ms-flexbox; display: flex; -webkit-box-orient: vertical; -webkit-box-direction: normal; -ms-flex-direction: column; flex-direction: column; -ms-flex-wrap: wrap; flex-wrap: wrap; -webkit-box-pack: center; -ms-flex-pack: center; justify-content: center; -webkit-box-align: center; -ms-flex-align: center; align-items: center; line-height: 1; color: #666; } .navLink.active { color: #1abc9c } .navLinkIco { display: block; margin-bottom: 0.1rem; } .navLinkText { display: block; line-height: 1; font-size: 0.24rem; } .img-responsive { width: 100%; } </style> </html>
效果展現字體
UI給出的效果圖flex
下面是這段代碼運行在iphone5和iphone6plus上的效果flexbox
參考連接:https://www.jianshu.com/p/985d26b40199 手機端頁面自適應解決方案spa