上一篇博文,可算把像素这个东西讲清楚了。在这篇博文里面,将继续介绍viewport相关的内容。

很多博客都会提到PPK所讲的三个viewport,有的讲的比较复杂,看的云里雾里,我这里也大概介绍一下,三个viewport主要是相对于移动端而言的。

visual viewport

这个是浏览器给我们用的、能真正用来显示网页内容的区域,可以通过下面的js命令获取:


window.innerWidth
window.innerHeight

正如上篇博客所说的,前端里面能获取到的像素基本上都是CSS像素,所以这个的单位也是CSS像素。对于iPhone X,浏览器全屏状态下,其window.innerWidth的值为375。

上篇博客中还提到screen.widthscreen.height,主要是用来获取整个屏幕的大小的,而window.innerWidthwindow.innerHeight只是获取浏览器可用显示区域的大小,也就是浏览器中间负责显示的部分。当浏览器全屏时,要去掉状态栏、标签栏、任务栏等区域,当浏览器非全屏时,其值更小。由于在移动端,浏览器一般都是全屏的,所以大多数情况下screen.widthwindow.innerWidth的值相等,也有的博客中说用screen.widthscreen.height来获取visual viewport的大小,就是这个原因。

visual viewport是我们可以直观看到的,不严谨的说,就是差不多等于手机屏幕的大小,偏向于一个物理概念。

layout viewport

网页最早是出现在电脑上的,上一篇博客中提到,电脑的物理像素可能比手机还要低,但是电脑的设备无关像素(或者说是分辨率吧,更严谨一些)是明显大于手机的设备无关像素的,毕竟电脑的屏幕尺寸远比手机大啊。那些在电脑上的网页,如果没有经过专门的优化,直接搬到手机上看,那么问题就来了,网页会被挤得变形,相信这种问题大家都遇到过。所以呢,手机厂商为了解决这个问题,设置了一个layout viewport。

这是一个虚拟的窗口,其大小比手机屏幕大,加载网页时,直接把HTML渲染在这个虚拟的窗口中,这样就不会样式错乱了。在查看的时候,毕竟手机的visual viewport小啊,那就只能通过滚动条来看了。

做个比喻,layout viewport就是一张大白纸,HTML的内容就写在这个大白纸上,visual viewport就是一个放大镜,上下左右移动,可以显示其中的一部分。

Layout viewport的大小可以通过document.documentElement.clientWidthdocument.document.clientHeight,实际使用中可能会有一些兼容问题,这跟DOCTYPE声明有关。不同浏览器的layout viewport大小不同,常见的有980px、1024px。

ideal viewport

Layout viewport是为了能将电脑上的网页正确的显示到手机上。当浏览器拿到一个网页时,首先会渲染到这个layout viewport里面。可是现在有很多网页会针对手机做专门的设计,比如现在的一些H5活动页,设计的尺寸就是在手机上看的。此时如果还是把网页渲染到这个大的layout viewport上,实在是有点不合适了。所以,还应该有个ideal viewport,这个ideal viewport应该与手机屏幕大小的相同,确切来说,等于visual viewport的大小。把页面渲染到这个ideal viewport里面,就能在visual viewport中完美显示。

小结

根据我的理解小结一下:layout viewport和ideal viewport都是用来渲染页面,layout viewport较大,用来渲染电脑上的页面,ideal viewport较小,用来渲染专门针对手机设计的页面;而visual viewport是用来查看layout viewport和ideal viewport的,是用来查看渲染的结果的。visual viewport是很具体的,而layout viewport和ideal viewport是比较抽象的。某种程度来说,layout viewport和ideal viewport可以理解成是两种尺寸,承载页面渲染的盒子,可以设置成layout viewport的尺寸,也可以设置成ideal viewport的尺寸,而且在默认情况下是layout viewport的尺寸。如果我们设置HTML中body为width:100%,那么这个body的实际宽度,将由这个盒子的宽度决定。在下一篇博文中,将介绍如何用meta标签来设置viewport,也就是设置这个承载HTML页面渲染的盒子的尺寸,从而达到最佳的显示效果。

来源:https://segmentfault.com/a/1190000017542232

转载于:https://www.cnblogs.com/lovellll/p/10189093.html

移动端适配之二:visual viewport、layout viewport和ideal viewport介绍 1相关推荐

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

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

  2. 移动端适配viewport的概念与理解

    一.基本概念 首先,viewport指视口,浏览器上(或一个app中的webview)显示网页的区域.PC端的视口是浏览器窗口区域,而移动端的则存在三个不同的视口: layout viewport:布 ...

  3. layout viewport visual viewport ideal viewport

    我们经常见到用 K和 P这个单位来形容屏幕: P代表的就是屏幕纵向的像素个数, 1080P即纵向有 1080个像素,分辨率为 1920X1080的屏幕就属于 1080P屏幕. 我们平时所说的高清屏其实 ...

  4. 前端面试之移动端适配篇(转载)

    文章目录 关于像素,括号中为别名 设备像素(物理像素) 设备无关像素(设备独立像素) 设备无关像素与CSS像素之间的关系 -- 页面缩放比 设备像素与设备无关像素之间的关系 -- DPR 设备像素与C ...

  5. 从淘宝适配布局谈移动端适配

    一.        首先我们先来看看淘宝不同分辨率下的适配页面 可以看出来,淘宝在不同的分辨率下,页面的尺寸和模块间的间距会发生变化,这是因为淘宝采用了rem,这篇文章会简单介绍淘宝的布局思路以及具体 ...

  6. 移动端布局三种视口_移动端适配之视口和meta标签

    这是关于移动端适配的第一篇文章,这篇文章主要介绍视口以及和视口有关的meta标签的使用. 不管三七二十一,我们先新建一个页面: 这不是一个demo *{margin: 0; padding: 0;} ...

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

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

  8. 【移动端适配 视口viewport】移动端meta属性设置的理想视口是什么

    1.看一下我的代码 <!DOCTYPE html> <html lang="en"> <head><meta charset=" ...

  9. Vue笔记 (二) 如何做移动端适配 让你只用关心设计稿

    一. 移动端基础知识 在移动端开发时,我们经常发现出现布局后有不兼容的问题,如何在不同设备上进行适配呢,希望康完这边,你能从原理到应用彻底熟悉移动端适配. 1.1 手机屏幕现状 移动端设备屏幕尺寸非常 ...

最新文章

  1. 精心总结 Python『八宗罪』,邀你来吐槽
  2. ubuntu——安装和NS3
  3. 【赠书】图表示学习+图神经网络:破解AI黑盒,揭示万物奥秘的钥匙!
  4. 关于JAVA中子类和父类的构造方法
  5. 演讲预告:一个月的住院经历,我悟到了哪些和程序员职场发展相关的心得
  6. 泽西岛客户:测试外部呼叫
  7. (95)FPGA仿真文件保存(VCD文件)
  8. html css浪漫页面,程序员的浪漫表白代码(JS+CSS+HTML)附带源码
  9. 机器学习1/100天-数据预处理
  10. Eric Pement的单行awk命令收集
  11. HTML PS 环境搭建,快捷键及简单图片处理(图片测量及抠取)
  12. App测试的11点建议
  13. 论文纠错和管理文献工具
  14. 最简单开启三星a6sUSB调试模式的方法
  15. 蓝桥杯模拟赛 青出于蓝而胜于蓝
  16. 第十一届“蓝狐网络杯”湖南省大学生计算机程序设计竞赛
  17. apple configurator 2 获取appstore ipa包
  18. 镜头的MTF曲线分析和原理
  19. 物品冷启动问题解决办法
  20. 相机模型:opengl投影 vs 小孔成像

热门文章

  1. CentOS 7部署 Ceph分布式存储架构
  2. Linux 服务器感染kerberods 病毒
  3. Zabbix官方文件Zabbix图形树
  4. 关于IT测试中的一些问题。
  5. 【SQL】substr截取结果和想象中有差异?
  6. 【Python-3.3】win7 安装pip
  7. Android中如何解决输入法键盘和activity页面遮挡的问题
  8. jquery click()方法模拟点击事件对a标签不生效的解决办法
  9. 关于腾讯云redis 无法外网访问的解决方案
  10. ajax的content-download时间过慢问题的解决与思考