适配手机尺寸

不同手机按比例缩放

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

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 200,302评论 5 470
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 84,232评论 2 377
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 147,337评论 0 332
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 53,977评论 1 272
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 62,920评论 5 360
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,194评论 1 277
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 37,638评论 3 390
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,319评论 0 254
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,455评论 1 294
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,379评论 2 317
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,426评论 1 329
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,106评论 3 315
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,696评论 3 303
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,786评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 30,996评论 1 255
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 42,467评论 2 346
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,043评论 2 341

推荐阅读更多精彩内容

  • 刚开始做移动端web开发的同学应该都碰到过页面适配问题,为什么我在开发手机上调试好的页面在其他手机会有这样或那样的...
    留七七阅读 19,273评论 5 80
  • 一、meta标签的效果 移动端页面一般会在head头部添加如下meta标签。 该meta标签是否添加对页面渲染的影...
    nimw阅读 3,512评论 0 5
  • 问题的由来 手机屏幕的分辨率差异很大。 iphone4:320×480 iphone6:375×667 H5 网页...
    尚山夏香阅读 2,402评论 0 1
  • 我们第一次接触移动web的时候,直观印象样应该是:屏幕比pc小很多,所以对pc端设计的界面,不一定(或者说不完全)...
    Scaukk阅读 16,811评论 6 46
  • 最近这件事情一直困扰着我,只要一想起心里就堵得慌,也不知道自己为什么会那么在意和难受。 我把事情讲给大家听,大家看...
    婷蜜蜜阅读 180评论 0 0