移动端适配--今日,你学识咗未吖

移动端适配   是我以前开发中思考的最久的一个东西,上网找到的都是用什么库 框架 啊之类来解决适配问题的。

但经过一段时间的移动开发之后,总算不头疼这个问题了,以下就是我开发中用到的适配方式,可以说是非常详细的,希望能帮到需要帮助的猿!!

第一种方式:(代码 + 说明)

  var screenWidth = 屏幕宽度;
  var designWidth = 设计稿宽度;
  var fontSize = 字体基础值;
  var htmlPX;

 参数说明:

  屏幕宽度 就是指要适配的手机屏幕宽度
  设计稿宽度 就是指UI稿的宽度
  字体基础值 可以随便设置,但是这个会影响你实际布局的时候值的计算(数学好的当我没说过),我一般设置为100
  htmlPX 就是根节点的字体font-size值

 htmlPX 的公式为:

  screenWidth / designWidth * fontSize = htmlPX;

 然后媒体查询就可以写成这样了

  @media only screen and (max-width: screenWidth),
  only screen and (max-device-width: screenWidth) {
    html,body {
      font-size: htmlPX;
    }

  },

  注意: 上面的变量全都要换成具体的值再放到里面的,要是直接复制粘贴过去,除了问题就别找我了。。

  然后在写css的时候,有px单位的(不考虑border的情况下)都要转成rem单位,并且数值要除以fontSize(这个最好设置100啦,容易计算;例如我盒子宽度设置150px,做成适配的rem布局就是150/100=1.5rem了)

 举个栗子:

  假如我要做适配,设计稿宽度为750,基础字体值为100,还有一些其他css,我要适配375,414,320屏幕的手机,那么我就在css文件里面这样写:

  

@media only screen and (max-width: 414px),
    only screen and (max-device-width: 414px) {
        html,body {
            font-size: 55.2px;
        }    

    };
    @media only screen and (max-width: 375px),
    only screen and (max-device-width: 375px) {
        html,body {
            font-size: 50px;
        }    

    };
    @media only screen and (max-width: 320px),
    only screen and (max-device-width: 320px) {
        html,body {
            font-size: 42.66666666666667px;
        }    

    };

    div {
        width: 1.5rem;
        padding: 0.2rem;
    }

  一般来说,宽度最好用百分比这样肯定不会出问题,如果非要用rem,那就愿天主与你同在,阿门!!

第二种方式: (代码 + 说明)

 1.先设置header里面的meta标签:

    

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

  这个设置有什么用我就不用说了,这个满大街都有,移动端必备的代码!!!

 2.在header写上<script>标签

  

<script type="text/javascript">
   document.documentElement.style.fontSize = document.documentElement.clientWidth / 640*100 + ‘px‘;
 </script>

  我们在写css的时候可以直接写rem, 然后数值就写从设计稿上量出来的px数值再除以100加上rem单位,就搞定收工!!

 上面这段代码的跟第一种方式原理一样的,不过第一种方式在电脑上进行调试比较方便,不用每次改变屏幕大小都要刷新一遍,而第二种方式在电脑上调试的时候就麻烦一点。(虽然只是一个F5而已。。)

 个人认为还是第一种比较好,因为层叠样式表(css)就是为了改变样式而产生的,而脚本(JavaScript)就是为了改变行为方式而产生的,所以适配还是用css来写比较符合W3C工作者的初衷。

 以上仅为个人观点,但内容目测和实测都可实现具体功能。

 不喜勿喷,,如有错误,欢迎指出,必回!!喜欢的就请留下个赞呗~~

原文地址:https://www.cnblogs.com/brownChan/p/response_page.html

时间: 2024-10-03 14:18:12

移动端适配--今日,你学识咗未吖的相关文章

如何在Vue项目中使用vw实现移动端适配

https://www.w3cplus.com/mobile/vw-layout-in-vue.html  原文网址 如何在Vue项目中使用vw实现移动端适配 作者:大漠 日期:2018-01-25 点击:10362 vw Layout 布局 Vue mobile 编辑推荐:使用 Coding.net 搭建静态博客,自定义域名,全站 HTTPS 加密,自动实时部署, 立即托管您的网站! 有关于移动端的适配布局一直以来都是众说纷纭,对应的解决方案也是有很多种.在<使用Flexible实现手淘H5页

移动端适配方案研究

初次接触移动端的时候,以为终于可以不用像pc那样考虑令人头疼的ie浏览器兼容问题,有强大的css3的帮助,可以随心所欲..可是后来才发现原来移动端各种层次不齐的终端更会让人抓耳挠腮,同样的页面在不同的手机上显示的完全不一样的效果,于是抛开功能,页面适配性也成了一个大的课题. 说到移动端,下面这一行代码大家一定不陌生: <meta name="viewport" content="width=device-width, initial-scale=1, maximum-s

移动端适配知识梳理

了解移动端的知识 viewportviewport是用户网页的可视区域.手机浏览器是把页面放在一个虚拟的"窗口"(viewport)中,通常这个虚拟的"窗口"(viewport)比屏幕宽,这样就不用把每个网页挤到很小的窗口中(这样会破坏没有针对手机浏览器优化的网页的布局),用户可以通过平移和缩放来看网页的不同部分. 像素css中的像素只是一个抽象的单位,早期的手机屏幕像素密度较低,一个css像素等于一个物理像素.但是随着手机的屏幕像素密度越来越高,比如Retina,

移动端适配之雪碧图(sprite)背景图片定位

为了减少网络请求个数量,提高网站的访问速度,我们一般都会把一些小的图片合并成一张sprite图,然后根据background-position来进行定位.在web端由于是固定的大小与left .top,所以定位起来会比较准确.简单.但是在移动端就不一样了,各种手机的屏幕大小不一样,很难做到使用sprite图然后根据background-position来定位.所以普遍的做法都是使用单张图片,然后使用background-size: cover|100%|contain来控制背景图的大小.其实这样

移动端适配之rem 笔记

/*移动端适配 width|height|font-size = 视觉稿量出来的值 / 100rem;@lbl*/ @media screen and (max-width:359px) and (min-width:320px) { html,body{ font-size: 50px !important; } } @media screen and (max-width:374px) and (min-width:360px) { html,body{ font-size: 56.25px

移动端适配之REM

随着手机等移动设备的普及,移动端带来的流量已经不可忽视,一个网站不只是只有pc的页面就足够了,移动端的适配已经势在必行.但是移动设备种类繁多,屏幕尺寸也千奇百怪,能不能找到一种方式可以适配所有的手机屏幕呢? 答案就是rem. 俗话说 “授人以鱼不如授人以渔”,但今天我就反其道而行,就是授人以鱼的.因为要跟你说什么设备像素比.css像素.ppi等东西,估计你会晕的(主要是我也搞不懂).废话不多说,先上代码. 1 /*移动端适配 width|height|font-size = 视觉稿量出来的值 /

手机平板等移动端适配跳转URL的js代码

<script type="text/javascript"> if(/AppleWebKit.*mobile/i.test(navigator.userAgent) || (/MIDP|SymbianOS|NOKIA|SAMSUNG|LG|NEC|TCL|Alcatel|BIRD|DBTEL|Dopod|PHILIPS|HAIER|LENOVO|MOT-|Nokia|SonyEricsson|SIE-|Amoi|ZTE/.test(navigator.userAgent)

移动端适配js

移动端适配方案非常多,入行两年来始终没有一直使用一个标准,每个项目都按照业务需求来做适配 方案一: 最初听李彦辉老师的课程使用rem 布局了一段时间,但是字体计算比较麻烦,也不太精确 方案二: 偶然在Q群里一群友分享的 动态改变根节点字体的方案布局,头部引用一个js.按照设计图的像素写rem,100px = 1rem //控制字体 var calculate_size = function() { var BASE_FONT_SIZE = 100; var docEl = document.do

移动端适配难点

1.移动端开发通常都会在html中写下以下的meta标签 <meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=0"> 需要注意的是无论是这样写还是用淘宝flexible.js动态生成meta头,目的只有一个,那就是让布局视口等于苹果手机的分辨率宽高/设备像素比后的宽高.苹果手机的分辨率是指以下所示 而不