移动端适配的方法

发布于 2023-05-05 20:22:09 字数 1357 浏览 60 评论 0

1. viewport 适配

通过设置 viewport 的宽度为设计稿尺寸,然后设置缩放比例为正式设备和设计稿宽度的比例实现适配

const WIDTH = 750
    const mobileAdapter = () => {
      let scale = screen.width/WIDTH
      let content = `width=${WIDTH}, initial-scale=${scale}, maximum-scale=${scale}, minimum-scale=${scale}`
      let meta = document.querySelector('meta[name=viewport]')
      if(!meta) {
        meta = document.createElement('meta')
        meta.setAttribute('name', 'viewport')
        document.head.appendChild(meta)
      } 
      meta.setAttribute('content', content)
    }
    mobileAdapter()
    window.onorientationchange = mobileAdapter

优点: 开发流程很简单,不需要额外计算。适配范围广。
缺点: 页面整体放大缩小,对于不想缩放的元素无法控制。比如边框在大屏手机下显得很粗,在小屏手机下显得很细

rem 适配

rem 的大小是 html 根元素的 fontsize 大小,可以动态设置 rem,实现屏幕适配。针对不想响应式的元素,仍然可以使用 px

const WIDTH = 750  
const setView = () => {
      document.documentElement.style.fontSize = (100*screen.width/WIDTH) + 'px'
}
window.onorientationchange = setView
setView()

开发代码时直接 像素大小 除以 100, 就可以得到rem大小

vw 适配

直接使用和宽度的比例获取 vw 尺寸即可,例如 28px 可以得到 calc(100vw * 28 / 750)

项目开发时可以用 预处理器进行换算

@function px2vw($px) {
  @return $px * 100vw / 750;
}

.button {
  width: px2vw(120);
  font-size: px2vw(28);
  line-height: px2vw(48);
  border: 1px solid #000;
  text-align: center;
}

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。
列表为空,暂无数据

关于作者

吹泡泡o

暂无简介

0 文章
0 评论
22 人气
更多

推荐作者

懂王

文章 0 评论 0

清秋悲枫

文章 0 评论 0

niceone-tech

文章 0 评论 0

小伙你站住

文章 0 评论 0

刘涛

文章 0 评论 0

南街九尾狐

文章 0 评论 0

    我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
    原文