整合營(yíng)銷(xiāo)服務(wù)商

          電腦端+手機(jī)端+微信端=數(shù)據(jù)同步管理

          免費(fèi)咨詢熱線:

          HTML讓網(wǎng)頁(yè)自動(dòng)適應(yīng)電腦手機(jī)屏幕大小

          作的網(wǎng)頁(yè)除了在PC端瀏覽,在現(xiàn)在移動(dòng)端量巨大的時(shí)代下,如何做好PC端與移動(dòng)端的自適應(yīng),是每個(gè)程序必須要需要考慮的事情。

          舉例

          下面是沒(méi)有加適應(yīng)的情況

          前端開(kāi)發(fā)中,移動(dòng)端不同設(shè)備的屏幕適配一直是個(gè)繞不開(kāi)的技術(shù)話題。目前比較流行的方案是類(lèi)似淘寶的flexible。其原理是使用js動(dòng)態(tài)計(jì)算html的font-size,利用rem來(lái)實(shí)現(xiàn)不同寬度的適配。使用js方案雖然比較成熟,但也有它的一些缺點(diǎn),比如性能損耗,由于js的阻塞加載和動(dòng)態(tài)計(jì)算,頁(yè)面不免會(huì)出現(xiàn)卡頓和閃屏的現(xiàn)象,影響用戶體驗(yàn)。今天我們不使用js,完全使用css來(lái)實(shí)現(xiàn)適配,來(lái)看看是怎么實(shí)現(xiàn)的吧!

          移動(dòng)端屏幕適配

          方案一:使用meta標(biāo)簽

          在html的head中插入下面的meta標(biāo)簽:

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

          沒(méi)錯(cuò),是兩個(gè)viewport標(biāo)簽。width=device-width寫(xiě)在上面,width=375寫(xiě)在下面,375就是以哪個(gè)設(shè)備寬度為基準(zhǔn),現(xiàn)在大部分設(shè)計(jì)稿都是以iphone6的375寬度為基準(zhǔn)做2倍圖。加了上面兩個(gè)mata標(biāo)簽,后面的css就可以完全使用px為單位直接使用,整個(gè)頁(yè)面會(huì)自動(dòng)按設(shè)備寬度進(jìn)行等比例縮放。看下面的演示效果:

          <script src="https://lf3-cdn-tos.bytescm.com/obj/cdn-static-resource/tt_player/tt.player.js?v=20160723"></script>


          方案二:使用css的calc計(jì)算屬性

          在css中定義html的font-size為:calc(100vw/3.75),calc、vw能兼容ios8+和android4.4+,可放心使用,如下:

          html {
            font-size: calc(100vw/3.75);
            -webkit-text-size-adjust: 100%;
          }

          然后在css中,就可以將所有的px單位除以100,得到rem單位了。比如:

          .row>div {
            float: left;
            width: .82rem;
            height: .82rem;
            text-align: center;
            line-height: .82rem;
            margin-left: .05rem;
            background-color: #f0f0f0;
          }

          上面的rem單位轉(zhuǎn)換,建議大家可以使用px2rem這個(gè)插件完成,webpack、vscode都能支持。設(shè)置時(shí)將rootFontSize 設(shè)為100即可。

          設(shè)置px2rem參數(shù)

          在vscode中,可以使用ctrl+shift+p,選擇px2rem就可以將當(dāng)前頁(yè)面的px全部轉(zhuǎn)換為rem。

          px2rem在vscode中的使用方法


          當(dāng)然,rem和px可以相互共存,比如我標(biāo)題欄就想要44px高,這樣就不會(huì)縮放了。看下面的演示效果:

          純css實(shí)現(xiàn)移動(dòng)端適配

          總結(jié):兩種方案如何選擇

          方案一,直接使用html的mata實(shí)現(xiàn)整個(gè)頁(yè)面的縮放,比較適合那些宣傳單頁(yè)或全屏游戲交互類(lèi),無(wú)法實(shí)現(xiàn)px與rem共存的情況。

          方案二,利用了rem來(lái)縮放,可實(shí)現(xiàn)與px共存,在借助px2rem的情況下,能高效方便的實(shí)現(xiàn)適配。

          綜合考慮,小編建議使用方案二。你,學(xué)會(huì)了嗎?

          PC端進(jìn)行網(wǎng)頁(yè)制作時(shí),經(jīng)常使用固定像素并且內(nèi)容居中的網(wǎng)頁(yè)布局,為了適應(yīng)小屏幕的設(shè)備,在移動(dòng)設(shè)備和跨平臺(tái)(響應(yīng)式)網(wǎng)頁(yè)開(kāi)發(fā)過(guò)程中,多數(shù)使用流式布局,下面我們就對(duì)流式布局進(jìn)行詳細(xì)介紹。

          流式布局是一種等比例縮放布局方式,在CSS代碼中使用百分比來(lái)設(shè)置寬度,也稱(chēng)百分比自適應(yīng)的布局。 流式布局實(shí)現(xiàn)方法是將CSS固定像素寬度換算為百分比寬度。換算公式如下: 目標(biāo)元素寬度/父盒子寬度=百分?jǐn)?shù)寬度 下面通過(guò)一個(gè)案例來(lái)演示固定布局如何轉(zhuǎn)換為百分比布局,如demo4-1.html 所示。

          <!DOCTYPE html>
          <html lang="en">
          <head>
          	<meta charset="UTF-8">
          	<title>固定布局轉(zhuǎn)換為百分比布局</title>
          	<style type="text/css">
          		body>*{ width: 980px; height:auto; margin:0 auto;
          				margin-top:10px;
          				border:1px solid #000; padding:5px;}
          		header{ height:50px;}
          		section{ height: 300px;}
          		footer{ height:30px;}
          		section>*{ height:100%; border:1px solid #000; float:left;}
          		aside{ width:250px;}
          		article{ width:700px; margin-left:10px;}
          	</style>
          
          </head>
          <body>
          <header>header</header>
          <nav>nav</nav>
          <section>
          	<aside>aside</aside>
          	<article>article</article>
          </section>
          <footer> footer</footer>
          </body>
          </html>
          

          打開(kāi)Chrome瀏覽器訪問(wèn)demo4-1.html,頁(yè)面效果如下圖所示。

          可以嘗試改變?yōu)g覽器窗口的大小,頁(yè)面元素的大小不會(huì)隨瀏覽器窗口改變,如下圖所示。

          下面修改demo4-1樣式代碼,將所有寬度修改為百分比的形式,具體如下:

          	<style type="text/css">
          		body>*{ width:95%; height:auto; margin:0 auto; margin-top:10px;
                         border:1px solid #000; padding :5px; }
          		header{ height:50px; }
          		section{ height: 300px; }
          		footer{ height:30px;}
          		section>*{ height:100%; border:1px solid #000; float:left; }
          		aside{ width:25.510204%; /*250÷980*/}
          		article{ width: 71.428571%; /*700÷980*/margin-left:1.0204088%;}
          	</style>
          

          刷新頁(yè)面,縮小瀏覽器,頁(yè)面按百分比隨瀏覽器逐漸縮小,顯示完整,頁(yè)面效果如下圖所示:


          主站蜘蛛池模板: 久久久精品人妻一区二区三区四| 亚洲AV网一区二区三区| 精品国产免费一区二区三区香蕉| 亚洲国产一区二区三区在线观看| 狠狠综合久久AV一区二区三区 | 亚洲国产精品一区二区九九| 亚洲一区二区三区亚瑟 | 波多野结衣一区视频在线| 国产无套精品一区二区| 国产激情一区二区三区成人91| 日本精品一区二区三本中文| 中文字幕日韩一区二区不卡 | 精品视频一区二区三区在线播放| 亚洲高清美女一区二区三区| 午夜福利一区二区三区高清视频| 99精品久久精品一区二区| 国产激情一区二区三区 | 一区二区三区四区在线视频| 国产主播一区二区三区| 国产主播一区二区三区 | 少妇无码一区二区二三区| 日韩欧国产精品一区综合无码| 在线观看免费视频一区| 中文字幕精品一区二区精品 | 在线电影一区二区三区| 精品国产日韩亚洲一区91| 日本一道一区二区免费看| 国产伦精品一区二区三区四区 | 亚洲一区二区三区不卡在线播放| 亚洲电影国产一区| AA区一区二区三无码精片| 国模私拍福利一区二区| 九九无码人妻一区二区三区| 日本一区二区三区久久| 亚洲av片一区二区三区| 久久青草国产精品一区| 精品欧洲AV无码一区二区男男 | 国产精品视频一区二区噜噜| 亚欧成人中文字幕一区| 精品国产一区二区三区AV| 立川理惠在线播放一区|