移动端适配

1、如果你只是简单的只适配移动端,不需要适配pc端的话

首先在head标签里加上meta
<meta name="viewport"
    content="width=device-width, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0, viewport-fit=cover">

而后再将写好的脚本引入即可(将下面代码写在一个文件中,在head中引用)

<script src="/plugin/lib-flexible.min.js"></script>
!(function(e, t) {
  function n() {
    t.body ? (t.body.style.fontSize = 12 * o + 'px') : t.addEventListener('DOMContentLoaded', n)
  }
  function d() {
    var e = i.clientWidth / 10
    i.style.fontSize = e + 'px'
  }
  var i = t.documentElement,
    o = e.devicePixelRatio || 1
  if (
    (n(),
    d(),
    e.addEventListener('resize', d),
    e.addEventListener('pageshow', function(e) {
      e.persisted && d()
    }),
    o >= 2)
  ) {
    var a = t.createElement('body'),
      s = t.createElement('div')
    ;(s.style.border = '.5px solid transparent'),
      a.appendChild(s),
      i.appendChild(a),
      1 === s.offsetHeight && i.classList.add('hairlines'),
      i.removeChild(a)
  }
})(window, document)

2、如果是需要兼容pc端和移动端,那么meta不变,脚本代码改为以下

!(function(e, t) {
  function n() {
    t.body ? (t.body.style.fontSize = 12 * o + 'px') : t.addEventListener('DOMContentLoaded', n)
  }
  // 判断是否是移动端
  function isMobilePlatform() {
    const userAgent = window.navigator.userAgent.toLowerCase()
    if (/(iphone|ipad|ipod|ios|android)/gi.test(userAgent)) {
      return true
    } else {
      return false
    }
  }
  function d() {
    let isMobile = isMobilePlatform()
    if (isMobile) {
      var e = i.clientWidth / 10
      i.style.fontSize = e + 'px'
    } else {
      if (t.body) {
      // pc端的最大宽度的设置
        t.body.style.maxWidth = 768 + 'px'
        t.body.style.margin = '0 auto'
      } else {
        t.addEventListener('DOMContentLoaded', d)
      }
		// pc端的最大宽度为多少,则他的fontSize为它的十分之一,量尺寸的时候使用蓝湖将尺寸调为pc端的最大尺寸
      i.style.fontSize = 76.8 + 'px'
    }
  }
  var i = t.documentElement,
    o = e.devicePixelRatio || 1
  if (
    (n(),
    d(),
    e.addEventListener('resize', d),
    e.addEventListener('pageshow', function(e) {
      e.persisted && d()
    }),
    o >= 2)
  ) {
    var a = t.createElement('body'),
      s = t.createElement('div')
    ;(s.style.border = '.5px solid transparent'),
      a.appendChild(s),
      i.appendChild(a),
      1 === s.offsetHeight && i.classList.add('hairlines'),
      i.removeChild(a)
  }
})(window, document)

如果想要在移动端写px的话,react可以下载 postcss-pxtorem,vue使用px2rem插件。

如果对大家有帮助的话希望大家可以点个赞!分享多多,干货满满。

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值