• viewport深入理解


    前面总结了一下viewport和px(屏幕分辨率)之间的关系, 现在来深入理解一下viewport

    1、css中的1px不等于设备的1px

      如之前说的在分辨率高的但是尺寸一样的屏幕上, 如i3的320×480, 1px=1像素, i4的640×960, 1px=2物理像素

      影响css中px的变化: 用户缩放, 用户把页面放大一倍, 1px=2倍原始物理像素; 把页面缩小一倍, 1px= 1/2倍原始物理像素

    2、三个viewport

      layout viewport: 浏览器默认的viewport(980/1024,一般大于可视宽度) 通过document.documentElement.clientWidth获取(IE则是document.body.clientWidth)

      visual viewport: 浏览器的可视区域的宽度 通过window.innerWidth(IE通过document.documentElement.clientWidth)

      ideal viewport:  移动设备的理想viewport, (如一段14px的文字在任何屏幕的分辨率下显示的大小都差不多)

    总结: 我们要做的就是把元素的宽度设置为ideal viewport的宽度, 这个元素的宽度就是设备的宽度, 达到宽度100%的效果, 就是我们为什么按照640/320 来适配移动段页面了

    3、meta标签对viewport进行控制

    我们开发时候需要得到的ideal viewport就是通过meta标签得到

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

    上面这句话把layout viewport设置为ideal viewport

    4、在iphone上面指定指定layout viewport或又没有指定initial-scale的话, 它会自动计算initial的值, 保证当前layout viewport的宽度在缩放后是浏览器可视化的宽度

    当前缩放值 = ideal viewport宽度  / visual viewport宽度

    5、总结

      1、如果不设置meta viewport标签,那么移动设备上浏览器默认的宽度值980px,1024px等 ,是大于屏幕宽度的。 这里的宽度所用的单位px都是指css中的px, 它跟代表实际屏幕物理像素的px不是一回事

      2、每个移动设备浏览器中都有一个ideal viewport,这个理想的宽度是指css中的宽度(我们适配的宽度),跟设备的物理宽度没有关系,我们可以用meta标签把viewport的宽度设为那个理想的宽度, 用 device-width这个特殊值,同时initial-scale=1也有把viewport的宽度设为理想宽度的作用。所以,我们可以使用

      meta name="viewport" content="width=device-width, initial-scale=1">

    参考:

       移动前端开发之viewport的深入理解 http://www.cnblogs.com/2050/p/3877280.html 

  • 相关阅读:
    类加载机制深度解析
    Mysql索引数据结构详解(1)
    深入理解mysql锁与事务隔离级别
    关于redis HSCAN count参数不生效的问题
    在idea的java开发中字符串length()方法获取长度与赋值不符的问题
    在网页中使用超链接来打开本地应用(可传参数)
    断言(assert)简介
    9. Palindrome Number
    四、MapReduce
    三、HDFS——Hadoop分布式文件系统
  • 原文地址:https://www.cnblogs.com/JoeChan/p/4915724.html
Copyright © 2020-2023  润新知