移動(dòng)端rem布局

移動(dòng)端布局的核心就是,設(shè)置好html跟標(biāo)簽,的動(dòng)態(tài)大小


直接上代碼

<!DOCTYPE html>

<html>

? ? <head>

? ? ? ? <title>REM布局</title>

? ? ? ? <meta charset="utf-8">

? ? ? ? <meta lang="zh-CN">

? ? ? ? <meta name="viewport" data-content-max content="width=device-width,initial-scale=1,user-scalable=no">

? ? ? ? <!-- <link rel="stylesheet" href="./rem.css"> -->

? ? ? ? <script src="./rem.js"></script>

? ? ? ? <!-- <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(normal,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=normal?1: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=normal?"50px": a/2*s*n+"px"},e.exports=t["default"]}]); flex(false,100, 1);</script> -->

? ? ? ? <!-- <script src="http://g.tbcdn.cn/mtb/lib-flexible/0.3.4/??flexible_css.js,flexible.js"></script> -->

? ? </head>

? ? <body data-content-max>

? ? ? ? <section class="container">

? ? ? ? ? ? <header>375 * 150</header>

? ? ? ? ? ? <nav>

? ? ? ? ? ? ? ? <ul>

? ? ? ? ? ? ? ? ? ? <li style="font-size: 0.5rem;background: red;float: left;">

? ? ? ? ? ? ? ? ? ? ? ? <span class="icon">60 * 60</span>

? ? ? ? ? ? ? ? ? ? ? ? <span>導(dǎo)航入口</span>

? ? ? ? ? ? ? ? ? ? </li>

? ? ? ? ? ? ? ? ? ? <li>

? ? ? ? ? ? ? ? ? ? ? ? <span class="icon">60 * 60</span>

? ? ? ? ? ? ? ? ? ? ? ? <span>導(dǎo)航入口</span>

? ? ? ? ? ? ? ? ? ? </li>

? ? ? ? ? ? ? ? ? ? <li>

? ? ? ? ? ? ? ? ? ? ? ? <span class="icon">60 * 60</span>

? ? ? ? ? ? ? ? ? ? ? ? <span>導(dǎo)航入口</span>

? ? ? ? ? ? ? ? ? ? </li>

? ? ? ? ? ? ? ? </ul>

? ? ? ? ? ? </nav>

? ? ? ? ? ? <main>

? ? ? ? ? ? ? ? <h3 style="font-size: 0.4rem">填寫(xiě)信息</h3>

? ? ? ? ? ? ? ? <div class="info-items">

? ? ? ? ? ? ? ? ? ? <p class="info-item">

? ? ? ? ? ? ? ? ? ? ? ? <span>姓名</span>

? ? ? ? ? ? ? ? ? ? ? ? <input type="text" class="info-item__name" placeholder="請(qǐng)?zhí)顚?xiě)姓名">

? ? ? ? ? ? ? ? ? ? </p>

? ? ? ? ? ? ? ? ? ? <p class="info-item">

? ? ? ? ? ? ? ? ? ? ? ? <span>手機(jī)</span>

? ? ? ? ? ? ? ? ? ? ? ? <input type="number" class="info-item__tel" placeholder="請(qǐng)?zhí)顚?xiě)手機(jī)號(hào)">

? ? ? ? ? ? ? ? ? ? </p>

? ? ? ? ? ? ? ? </div>

? ? ? ? ? ? ? ? <h3>個(gè)人介紹</h3>

? ? ? ? ? ? ? ? <div class="info-items">

? ? ? ? ? ? ? ? ? ? <p class="info-item f-p-0">

? ? ? ? ? ? ? ? ? ? ? ? <textarea class="info-item__intro" placeholder="請(qǐng)?zhí)顚?xiě)一段簡(jiǎn)要的自我介紹"></textarea>

? ? ? ? ? ? ? ? ? ? </p>

? ? ? ? ? ? ? ? </div>

? ? ? ? ? ? ? ? <div class="info-confirm">

? ? ? ? ? ? ? ? ? ? <a href="javascript:;" class="info-confirm__btn">確認(rèn)</a>

? ? ? ? ? ? ? ? </div>

? ? ? ? ? ? </main>

? ? ? ? ? ? <footer>375 * 75</footer>

? ? ? ? </section>

? ? </body>

</html>

js代碼:



!(function()?{

????var?docElem?=?document.documentElement,

????????metaElem?=?document.querySelector('meta[name="viewport"]'),

????????dpr?=?window.devicePixelRatio?||?1,

????????//?將頁(yè)面分為10塊

????????blocks?=?10,

????????//?需要限制的最小寬度

????????defaultMinWidth?=?320,

????????//?需要限制的最大寬度

????????defaultMaxWidth?=?540,

????????//?計(jì)算的基準(zhǔn)值

????????calcMaxWidth?=?9999999;

????if?(!metaElem)?{

????????metaElem?=?initMetaViewport();

????}

????if?(metaElem.getAttribute('data-content-max')?!==?null)?{

????????calcMaxWidth?=?defaultMaxWidth;

????}

????//?確保meta[name="viewport"]存在

????function?initMetaViewport()?{

????????var?meta?=?document.createElement('meta');

????????meta.setAttribute('name',?'viewport');

????????meta.setAttribute('content',?'width=device-width,initial-scale=1,user-scalable=no');

????????document.head.appendChild(meta);

????????return?meta;

????}

????//?大部分dpr為2以下的安卓機(jī)型不識(shí)別scale浪谴,需設(shè)置不縮放

????if?(navigator.appVersion.match(/android/gi)?&&?dpr?<=?2)?{

????????dpr?=?1;

????}

????setScale(dpr);

????//?企業(yè)QQ設(shè)置了scale后夹姥,不能完全識(shí)別scale(此時(shí)clientWidth未收到縮放的影響而翻倍),需設(shè)置不縮放

????if?(navigator.appVersion.match(/qq\//gi)?&&?docElem.clientWidth?<=?360)?{

????????dpr?=?1;

????????setScale(dpr);

????}

????docElem.setAttribute('data-dpr',?dpr);

????//?設(shè)置縮放

????function?setScale(dpr)?{

????????metaElem.setAttribute('content',?'initial-scale='?+?1?/?dpr?+?',maximum-scale='?+?1?/?dpr?+?',minimum-scale='?+?1?/?dpr?+?',user-scalable=no');

????}

????//?設(shè)置docElem字體大小

????function?setFontSize()?{

????????var?clientWidth?=?docElem.clientWidth;

????????clientWidth?=?Math.max(clientWidth,?defaultMinWidth?*?dpr)

????????//?調(diào)整計(jì)算基準(zhǔn)值

????????if?(calcMaxWidth?===?defaultMaxWidth)?{

????????????clientWidth?=?Math.min(clientWidth,?defaultMaxWidth?*?dpr);

????????}

????????docElem.style.fontSize?=?clientWidth?/?blocks?+?'px';

????}

????setFontSize();

????window.addEventListener(window.orientationchange???'orientationchange'?:?'resize',?setFontSize,?false);

})();


最后css代碼

.f-p-0{padding:0?!important}html,body{margin:0;padding:0}html?body{margin-right:auto;margin-left:auto;min-width:320px}@media?(-webkit-device-pixel-ratio:?2){html?body{min-width:640px}}@media?(-webkit-device-pixel-ratio:?3){html?body{min-width:960px}}html?body[data-content-max]{margin-right:auto;margin-left:auto;max-width:540px}@media?(-webkit-device-pixel-ratio:?2){html?body[data-content-max]{max-width:1080px}}@media?(-webkit-device-pixel-ratio:?3){html?body[data-content-max]{max-width:1620px}}html[data-dpr="1"]?body{min-width:320px}body{border-width:45px;background-color:#f8f8f8;font-size:.3733333333rem;font-family:"Microsoft?YaHei"}.container{background-color:#fff}header{height:4rem;line-height:4rem;text-align:center;background-color:#f2f2f2}nav?ul{display:flex;justify-content:space-around;padding:0}nav?ul?li{display:flex;flex-wrap:wrap;width:2.6666666667rem;justify-content:center}nav?ul?.icon{margin-bottom:.2666666667rem;width:1.6rem;height:1.6rem;line-height:1.6rem;text-align:center;background-color:#f2f2f2}main{padding:.2666666667rem}main?h3{position:relative;margin-top:.6666666667rem;margin-left:.3466666667rem;font-size:.4rem}main?h3:before{content:"";position:absolute;left:-.2666666667rem;width:.16rem;height:100%;background-color:#fc8200}.info-items{margin-top:.2666666667rem;margin-bottom:.2666666667rem}.info-item{margin-top:.2666666667rem;padding:.4rem;padding-left:0;border:1px?solid?#ddd;display:flex}.info-item?span{min-width:1.6rem;text-align:center;border-right:1px?solid?#ddd}.info-item?input{width:100%;border:none;font-size:.3733333333rem;caret-color:#fc8200;outline:none}.info-item?textarea{padding:.2666666667rem;width:100%;border:none;height:3.3333333333rem;font-size:.3733333333rem;font-family:"Microsoft?YaHei";caret-color:#fc8200;-webkit-text-size-adjust:none;text-size-adjust:none}.info-confirm{margin-bottom:.5333333333rem;text-align:center}.info-confirm__btn{display:inline-block;margin-top:1.0666666667rem;width:2.6666666667rem;height:1.0666666667rem;line-height:1.0666666667rem;text-align:center;background-color:#fc8200;text-decoration:none?!important;color:#fff?!important}footer{height:2rem;line-height:2rem;text-align:center;background-color:#f2f2f2}

/*#?sourceMappingURL=rem.css.map?*/

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子尼荆,更是在濱河造成了極大的恐慌,老刑警劉巖,帶你破解...
    沈念sama閱讀 212,383評(píng)論 6 493
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件解虱,死亡現(xiàn)場(chǎng)離奇詭異,居然都是意外死亡漆撞,警方通過(guò)查閱死者的電腦和手機(jī)殴泰,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,522評(píng)論 3 385
  • 文/潘曉璐 我一進(jìn)店門(mén),熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)浮驳,“玉大人悍汛,你說(shuō)我怎么就攤上這事≈粱幔” “怎么了离咐?”我有些...
    開(kāi)封第一講書(shū)人閱讀 157,852評(píng)論 0 348
  • 文/不壞的土叔 我叫張陵,是天一觀的道長(zhǎng)奉件。 經(jīng)常有香客問(wèn)我宵蛀,道長(zhǎng),這世上最難降的妖魔是什么县貌? 我笑而不...
    開(kāi)封第一講書(shū)人閱讀 56,621評(píng)論 1 284
  • 正文 為了忘掉前任术陶,我火速辦了婚禮,結(jié)果婚禮上煤痕,老公的妹妹穿的比我還像新娘梧宫。我一直安慰自己,他們只是感情好摆碉,可當(dāng)我...
    茶點(diǎn)故事閱讀 65,741評(píng)論 6 386
  • 文/花漫 我一把揭開(kāi)白布祟敛。 她就那樣靜靜地躺著,像睡著了一般兆解。 火紅的嫁衣襯著肌膚如雪馆铁。 梳的紋絲不亂的頭發(fā)上,一...
    開(kāi)封第一講書(shū)人閱讀 49,929評(píng)論 1 290
  • 那天锅睛,我揣著相機(jī)與錄音埠巨,去河邊找鬼。 笑死现拒,一個(gè)胖子當(dāng)著我的面吹牛辣垒,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播印蔬,決...
    沈念sama閱讀 39,076評(píng)論 3 410
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼勋桶,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼!你這毒婦竟也來(lái)了?” 一聲冷哼從身側(cè)響起例驹,我...
    開(kāi)封第一講書(shū)人閱讀 37,803評(píng)論 0 268
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤捐韩,失蹤者是張志新(化名)和其女友劉穎,沒(méi)想到半個(gè)月后鹃锈,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體荤胁,經(jīng)...
    沈念sama閱讀 44,265評(píng)論 1 303
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,582評(píng)論 2 327
  • 正文 我和宋清朗相戀三年屎债,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了仅政。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 38,716評(píng)論 1 341
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡盆驹,死狀恐怖圆丹,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情躯喇,我是刑警寧澤辫封,帶...
    沈念sama閱讀 34,395評(píng)論 4 333
  • 正文 年R本政府宣布,位于F島的核電站玖瘸,受9級(jí)特大地震影響秸讹,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜雅倒,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 40,039評(píng)論 3 316
  • 文/蒙蒙 一璃诀、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧蔑匣,春花似錦劣欢、人聲如沸。這莊子的主人今日做“春日...
    開(kāi)封第一講書(shū)人閱讀 30,798評(píng)論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)。三九已至价脾,卻和暖如春牧抵,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背侨把。 一陣腳步聲響...
    開(kāi)封第一講書(shū)人閱讀 32,027評(píng)論 1 266
  • 我被黑心中介騙來(lái)泰國(guó)打工犀变, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人秋柄。 一個(gè)月前我還...
    沈念sama閱讀 46,488評(píng)論 2 361
  • 正文 我出身青樓获枝,卻偏偏與公主長(zhǎng)得像,于是被迫代替她去往敵國(guó)和親骇笔。 傳聞我的和親對(duì)象是個(gè)殘疾皇子省店,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 43,612評(píng)論 2 350