我们经常见到用 K和 P这个单位来形容屏幕:
P代表的就是屏幕纵向的像素个数, 1080P即纵向有 1080个像素,分辨率为 1920X1080的屏幕就属于 1080P屏幕。
我们平时所说的高清屏其实就是屏幕的物理分辨率达到或超过 1920X1080的屏幕。
K代表屏幕横向有几个 1024个像素,一般来讲横向像素超过 2048就属于 2K屏,横向像素超过 4096就属于 4K屏。
四、视口
视口( viewport)代表当前可见的计算机图形区域。在 Web浏览器术语中,通常与浏览器窗口相同,但不包括浏览器的 UI, 菜单栏等——即指你正在浏览的文档的那一部分。
一般我们所说的视口共包括三种:布局视口、视觉视口和理想视口,它们在屏幕适配中起着非常重要的作用。
4.1 布局视口

布局视口( layout viewport):当我们以百分比来指定一个元素的大小时,它的计算值是由这个元素的包含块计算而来的。当这个元素是最顶级的元素时,它就是基于布局视口来计算的。
所以,布局视口是网页布局的基准窗口,在 PC浏览器上,布局视口就等于当前浏览器的窗口大小(不包括 borders 、 margins、滚动条)。
在移动端,布局视口被赋予一个默认值,大部分为 980px,这保证 PC的网页可以在手机浏览器上呈现,但是非常小,用户可以手动对网页进行放大。
我们可以通过调用 document.documentElement.clientWidth/clientHeight来获取布局视口大小。
4.2 视觉视口

视觉视口( visual viewport):用户通过屏幕真实看到的区域。
视觉视口默认等于当前浏览器的窗口大小(包括滚动条宽度)。
当用户对浏览器进行缩放时,不会改变布局视口的大小,所以页面布局是不变的,但是缩放会改变视觉视口的大小。
例如:用户将浏览器窗口放大了 200%,这时浏览器窗口中的 CSS像素会随着视觉视口的放大而放大,这时一个 CSS像素会跨越更多的物理像素。
所以,布局视口会限制你的 CSS布局而视觉视口决定用户具体能看到什么。
我们可以通过调用 window.innerWidth/innerHeight来获取视觉视口大小。
4.3 理想视口

布局视口在移动端展示的效果并不是一个理想的效果,所以理想视口( ideal viewport)就诞生了:网站页面在移动端展示的理想大小。
如上图,我们在描述设备独立像素时曾使用过这张图,在浏览器调试移动端时页面上给定的像素大小就是理想视口大小,它的单位正是设备独立像素。
上面在介绍 CSS像素时曾经提到 页面的缩放系数=CSS像素/设备独立像素,实际上说 页面的缩放系数=理想视口宽度/视觉视口宽度更为准确。
所以,当页面缩放比例为 100%时, CSS像素=设备独立像素, 理想视口=视觉视口。
我们可以通过调用 screen.width/height来获取理想视口大小。

width=device-width 也就是说将layout viewport 的宽设置ideal viewport 的宽度

layout viewport visual viewport ideal viewport相关推荐

  1. 移动端适配之二:visual viewport、layout viewport和ideal viewport介绍

    上一篇博文,可算把像素这个东西讲清楚了.在这篇博文里面,将继续介绍viewport相关的内容. 很多博客都会提到PPK所讲的三个viewport,有的讲的比较复杂,看的云里雾里,我这里也大概介绍一下, ...

  2. 移动端适配之二:visual viewport、layout viewport和ideal viewport介绍 1

    上一篇博文,可算把像素这个东西讲清楚了.在这篇博文里面,将继续介绍viewport相关的内容. 很多博客都会提到PPK所讲的三个viewport,有的讲的比较复杂,看的云里雾里,我这里也大概介绍一下, ...

  3. layout viewport、visual viewport 和 ideal viewport 的区别?

    相关知识点: 如果把移动设备上浏览器的可视区域设为viewport的话,某些网站就会因为viewport太窄而显示错乱,所以这些浏览器就决定 默认情况下把viewport设为一个较宽的值,比如980p ...

  4. 作为前端的你不能不知道的知识,总结物理像素,像素密度,分辨率,CSS像素,设备像素比,二倍图,layout viewport、visual viewport 、ideal viewport、meta。

    此篇文章总结物理像素,像素密度,分辨率,CSS像素,设备像素比,二倍图,layout viewport.visual viewport .ideal viewport.meta. 首先我们来谈谈最基础 ...

  5. 什么是viewport,为什么需要viewport

    viewport:视口,视觉窗口,显示区域. 在显示面积上手机屏幕相对桌面显示器要小很多,在几年前(现在也如此)大部分网站都是为桌面显示器浏览而设计,很少考虑到适应手机屏幕,所以如果用手机浏览大多网站 ...

  6. CSS布局基础之二认识Viewport

    什么是viewport viewport,等同于浏览器窗口. 功能:约束你网站中最顶级包含块(containing block)元素html标签. 什么是包含块(containing block)?下 ...

  7. 移动前端开发之viewport,devicePixelRatio的深入理解

    移动前端开发之viewport的深入理解 在移动设备上进行网页的重构或开发,首先得搞明白的就是移动设备上的viewport了,只有明白了viewport的概念以及弄清楚了跟viewport有关的met ...

  8. 深入理解移动前端开发之viewport

    在移动设备上进行网页的重构或开发,首先得搞明白的就是移动设备上的viewport了,只有明白了viewport的概念以及弄清楚了跟viewport有关的meta标签的使用,才能更好地让我们的网页适配或 ...

  9. viewport理解

    以下内容对viewport理解不够深入,重写了一篇文章介绍基于REM响应式适配问题: 地址: 基于REM响应式适配方案 viewport预备知识 dpr === dppx dpr:device pix ...

最新文章

  1. 关于http301与302的技术讨论
  2. 为你的集成需求选择合适的ESB
  3. HashMap、TreeMap、Hashtable、HashSet和ConcurrentHashMap区别
  4. IJCAI 2021 | 腾讯和复旦联合出品:Adv-Makeup人脸黑盒攻击对抗算法
  5. echarts x轴坐标文字显示不全
  6. [机器学习]推荐系统之协同过滤算法
  7. linux和window是服务器时间同步
  8. 中国移动2013~2018年笔试真题及答案解析(助力2020秋招)
  9. keil5.36设置GB2312编码后无法修改字体的解决方法——2022.04.04
  10. Eclipse集成Zxing实现扫一扫功能
  11. 前程无忧招聘信息数据清洗+聚类分析
  12. macbookair有没有touchbar_如何评价新 MacBook Pro 上的 Multi-Touch Bar?
  13. 如何培养创造性思维能力
  14. UEFI启动-GPT分区,Windows 7+ 系统引导修复
  15. 求超大文件上传方案( Web )
  16. [转]FTP搜索引擎的设计与实现 1
  17. C++ Virtual详解
  18. js中eq neq gt gte lt lte分别是什么意思,如何应用
  19. Linux【搭建环境与基本指令】
  20. kivy控件之size_hint,pos_hint详述

热门文章

  1. C/C++语言100题练习计划 90——10 进制转 x 进制(进制转换实现)
  2. S3TC- DirectX 6.0 标准纹理压缩
  3. org.apache.ibatis.exceptions.PersistenceException: ### Error building SqlSession. ### The error may
  4. mysql prepare 注入_实战1:如何用 PREPARE 防止 SQL 注入
  5. [书目20080124]做个好丈夫的9大准则
  6. 火狐中国区linux无法同步,解决Linux和Windows平台下的Firefox数据不同步问题
  7. Netty最全入门教程!
  8. 言简意赅python系列---if not x: 和 if x is not None: 和 if not x is None: 的区别
  9. MySQL-mysqldump备份方法
  10. android微信聊天记录导出到电脑【微信安卓版技巧】