美文网首页
适配手机尺寸

适配手机尺寸

作者: 从这到那 | 来源:发表于2017-05-22 20:39 被阅读0次

不同手机按比例缩放

viewport方案

参考阿里的库,暂时没有仔细研究过

lib-flexible

动态rem

代码

写上meta:vp 标签

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

获取当前缩放比例并写入页面中(这里设计稿屏幕宽度为320px)

    <script>
        var width = document.documentElement.clientWidth
        var scale = width / 320
        var css = `
        html{
            font-size: ${scale * 320}px;
        }
        `
        document.write(`<style>${css}</style>`)
    </script>

将CSS中的单位都换成rem单位,缩放百分比按照设计稿和屏幕的比例,将现在CSS中的px单位除以320来获取比例,例如原来为128px ,用除以128/320 等于0.4 ,就写成0.4rem

width: 0.4rem;

一个个手动替换十分耗时间,我们可以使用scss来做。google搜索关键字scss px to rem

优化字体大小

要将字体放大一定比例,上面的scale就需要缩小相同的比例。一放一缩

注意点

我们不能将字体设置的太小,chrome默认的最小字体为12,如果我们设置的小于12的话,浏览器会默认是12不会比你设置的小。

小结:

1.用meta:vp标签 禁止浏览器的980像素缩放。

2.设置html{font-size:设计稿宽度*缩放比例(就是页面宽度)/10 px}。

3.10 rem == 页面宽度。

4.所有单位都用rem == 所有长度都以页面宽度为基准。

5.页面可以兼容任何手机屏幕。

设备的1像素

代码

现在设备的1像素不一定是CSS里面的1像素,比如retina屏在普通的1像素里又分了四份。

我们可以在mydevice网站 查看自己设备的CSS像素比CSS pixel-ratio

下面摘取阿里网站一篇博客的一些概念,移动端高清、多屏适配方案

一些概念

在进行具体的分析之前,首先得知道下面这些关键性基本概念(术语)。

物理像素(physical pixel)

一个物理像素是显示器(手机屏幕)上最小的物理显示单元,在操作系统的调度下,每一个设备像素都有自己的颜色值和亮度值。

设备独立像素(density-independent pixel)

设备独立像素(也叫密度无关像素),可以认为是计算机坐标系统中得一个点,这个点代表一个可以由程序使用的虚拟像素(比如: css像素),然后由相关系统转换为物理像素。

所以说,物理像素和设备独立像素之间存在着一定的对应关系,这就是接下来要说的设备像素比

设备像素比(device pixel ratio )

设备像素比(简称dpr)定义了物理像素和设备独立像素的对应关系,它的值可以按如下的公式的得到:

设备像素比 = 物理像素 / 设备独立像素 // 在某一方向上,x方向或者y方向

在javascript中,可以通过window.devicePixelRatio获取到当前设备的dpr。

在css中,可以通过-webkit-device-pixel-ratio-webkit-min-device-pixel-ratio-webkit-max-device-pixel-ratio进行媒体查询,对不同dpr的设备,做一些样式适配(这里只针对webkit内核的浏览器和webview)。

小结:

1.在普通屏幕

​ CSS 1px == 设备的1px

2.在Retina

​ CSS 1px == 设备的2px

​ 需求要border-width == 设备的1px

​ 设置border-width:0.5px == 设备的1px(兼容性有问题)

3.解决

​ 页面整体缩放50%,<meta ...initial=0.5...> border-width: 1px == 设备的1px

​ 副作用:所有div都变为原来的50%

​ 所有长度都以rem为基准,让rem变为原来的2倍

<head>
    <meta charset="UTF-8">
    <script>
        //整体缩放
        var scale = 1 / window.devicePixelRatio
        document.write(`
        <meta name="viewport" content="user-scalable=no, initial-scale=${scale}, maximum-scale=${scale}, minimum-scale=${scale}">
    `)
    </script>
    <title>Document</title>
    <script>
        var width = document.documentElement.clientWidth / window.devicePixelRatio
        //缩放了多少再乘以多少,还原回去
        var css = `
        html{
            font-size: ${width / 10 * window.devicePixelRatio}px;
        }
        `
        document.write(`<style>${css}</style>`)
    </script>
</head>
......
  <style>
        #section1 {
            text-align: center;
            border-bottom: 1px solid #ff0000;
        }
  </style>

代码思路:

1.获取设备的像素比

2.initial-scale = 1/像素比

3.让rem变为rem * 像素比

4.border-top:1px solid red

参考链接

web app变革之rem - 前端技术 - 腾讯ISUX

移动端高清、多屏适配方案

移动web适配利器-rem

相关文章

  • 屏幕适配的一些概念01

    设计尺寸规范-表格 设计尺寸规范-图文 设计尺寸规范-开发尺寸 也可以看看 屏幕适配的一些概念02 手机适配浏览,...

  • 适配手机尺寸

    不同手机按比例缩放 viewport方案 参考阿里的库,暂时没有仔细研究过 lib-flexible 动态rem ...

  • Android屏幕适配

    屏幕适配相关概念主流适配方案 一、屏幕适配相关概念 1、屏幕尺寸单位:英寸表示:手机对角线的物理尺寸 2、屏幕分辨...

  • 知识点梳理7 必备必会

    屏幕适配 android 适配笔记 屏幕尺寸含义:手机对角线的物理尺寸单位:英寸(inch),1英寸=2.54cm...

  • 常用的宏

    1.用来进行手机尺寸适配 2.随机色

  • 屏幕适配的总结笔记

    一、屏幕适配-autoresizing简单使用 1、为什么要屏幕适配? > iphone手机屏幕尺寸呈现多样化。 ...

  • Android屏幕适配

    Android屏幕适配 概述 屏幕适配的主要目标有两个,不同屏幕尺寸的适配和不同像素密度的适配。随着手机行业发展异...

  • android 适配笔记

    ps: 适配啊对于 Android 来说永远不会过时 相关概念 屏幕尺寸 含义:手机对角线的物理尺寸 单位:英寸(...

  • 2018-10-29

    又出了一款大手机,问题就是要适配了,适配自然是要根据屏幕尺寸来。怎么代表尺寸,当然是用枚举了(Swift的枚举真的...

  • 4.App方面(启动页,App图片,横竖屏适配)

    1.苹果横竖屏适配方面 1.苹果横竖屏适配吊(基本所有都包括) 2.适配苹果手机多种尺寸 3.直播里的问题(...

网友评论

      本文标题:适配手机尺寸

      本文链接:https://www.haomeiwen.com/subject/kuuixxtx.html