在一个浏览器中,看到的区域就是视口(viewport)

在PC端页面中,不需要对视口进行区分,因为布局视口和视觉视口是同一个

但在移动端,你布局的视口和可见的视口是不一样的

  • 这是因为移动端的网页窗口往往比较小,我们可能会希望一个大的网页在移动端可以完整的显示;
  • 所以在默认情况下,移动端的布局视口是大于视觉视口的

所以在移动端,我们将视口分成三种情况

  • 布局视口(layout viewport)
  • 视觉视口(visual layout)
  • 理想视口(ideal layout)

这些概念的区分来自PPK,这是他对于视口的描述

A tale of two viewports — part two

1.布局视口和视觉视口

在创建一个新的html文件的时候,默认会帮忙适配视口的,所以想要了解布局视口和视觉视口的关系的话,需要把默认适配的代码先注释掉

<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><meta http-equiv="X-UA-Compatible" content="IE=edge">//下面一行就是视口的适配<meta name="viewport" content="width=device-width, initial-scale=1.0"><title>Document</title>
</head>
<body></body>
</html>

给网页添加一个宽100px,高100px的div盒子,如图1-1所示

<style>.box{width:100px;height:100px;
}
</style><div class="box"></div>

图1-1 PC端的显示

没有问题,和理想中的情况差不多,来看一下移动端的效果。如图1-2所示。

图1-2 移动端的显示

在PC端的网页在移动端显示的100px也太小了呀,这是为什么?

  • 第一,它会按照宽度为980px来布局一个页面的盒子和内容;
  • 第二,为了显示可以完整的显示在页面中,对整个页面进行缩小;

所以我们在PC端进行布局的时候会相对于980px进行布局,这个默认980px的视口称为布局视口 如图1-3 图1-4所示。

图1-3 布局视口

图1-4 布局视口
  • 如果默认情况下,我们按照980px显示内容,那么右侧有一部分区域 就会无法显示,所以手机端浏览器会默认对页面进行缩放以显示到用 户的可见区域中;
  • 那么显示在可见区域的这个视口,就是视觉视口(visual viewport)如图1-5 图1-6所示

图1-5 视觉视口

图1-6 视觉视口

这样就清楚布局视口和可视视口的概念了

在PC端布局的时候布局的视口可能会超过移动端的可视视口,所以手机浏览器会将页面缩小以查看所有内容。

有一个想法,能不能让布局视口和视觉视口相同呢?反正在移动端看到的视口只有那么大,如果视口相同了,就好布局了。下面引入理想视口的概念。

2.理想视口

如果所有的网页都按照980px在移动端布局,那么最终页面都会被缩放显示。

  • 事实上这种方式是不利于我们进行移动的开发的,我们希望的是设置100px,那么显示的就是100px;
  • 如何做到这一点呢?通过设置理想视口(ideal viewport);

我们可以对layout viewport进行宽度和缩放的设置,以满足正常在一个移动端窗口的布局;就是布局视口和视觉视口的大小相同。

这个时候可以设置meta中的viewport;

现在可以把原来注释掉的代码根据需求修改值了。

  • 宽度width,移动端的宽度都不一致,一般不给一个固定值
    width=device-width这样就可以根据设备的宽度自动调节
  • 宽度height,没有浏览器用过
  • 设备宽度与viewport大小之间的缩放比例,initial-scale,一般设置为1.0
  • 设置用户无法缩放当前页面,user-scalable,默认yes指可以缩放,no不可以缩放,有的浏览器会忽略这个规则,所以需要设置下面的maximum-scale和minimum-scale
  • 定义缩放的最大值,maximum,一般设置为1.0
  • 定义缩放的最小值,minimum,一般设置为1.0

视口viewport的理解(布局视口、视觉视口、理想视口)相关推荐

  1. 移动端布局:视口viewport的理解

    移动端开发中,有一些基本概念需要理解清楚,才能更好的组织编程逻辑.在刚接触时,移动端视口的缩放和rem单位的缩放搞混淆了,弄得自己很蒙圈.所以仔细总结下自己的理解. 移动端的适配,我理解为两点: 第一 ...

  2. 移动端布局三种视口_移动端布局:视口viewport的理解

    移动端开发中,有一些基本概念需要理解清楚,才能更好的组织编程逻辑.在刚接触时,移动端视口的缩放和rem单位的缩放搞混淆了,弄得自己很蒙圈.所以仔细总结下自己的理解. 移动端的适配,我理解为两点: 第一 ...

  3. 二、视口 布局视口 视觉视口 理想视口

    2视口 视口(viewport)就是浏览器显示页面内容的屏幕区域.视口可以分为布局视口.视觉视口和理想视口. 2.1 布局视口 layout viewport 一般移动设备的浏览器都默认设置了一个布局 ...

  4. 移动端布局三种视口_什么是视口?移动端浏览器中的3种视口

    视口(Viewport)是移动Web开发中一个非常重要的概念,最早是由苹果公司在推出iPhone手机时发明的,其目的是为了让iPhone的小屏幕尽可能完整显示整个网页.通过设置视口,不管网页原始的分辨 ...

  5. 响应式布局——视口viewport和常用单位

    目录 导读 视口 viewport viewport 的缩放与平移 viewport的DOM API 移动端的 viewport 窄屏设备的问题 放大的viewport 可定制的viewport Vi ...

  6. 移动端布局三种视口_移动端开发知识[系列] - 视口viewport

    移动端H5知识[系列] - 视口viewport HTML5学堂:移动端从2012年走到今日,已经占领了互联网的半壁江山.网站开发也从PC平台向移动端平台开发发展.作为一个优秀的前端开发者,除了能够处 ...

  7. 移动web基础:视口(viewport),流式布局 JDM京东移动端开发

    目标 能够理解视口的概念并进行视口的设置 能够说出流式布局的基本布局特征 能够使用 2倍图进行页面开发 能够实现 京东首页的 头部布局 移动web基础 移动端调试问题 模拟器调试 真机调试:使用手机进 ...

  8. 【移动端网页布局】移动端网页布局基础概念 ② ( 视口 | 布局视口 | 视觉视口 | 理想视口 )

    文章目录 一.视口 1.布局视口 ( 网页大小 | 网页大小 > 设备大小 ) 2.视觉视口 ( 设备大小 | 网页大小 > 设备大小 ) 3.理想视口 ( 网页大小 = 设备大小 ) 一 ...

  9. html逻辑像素和实际像素,物理像素、逻辑像素、设备像素比、PPI、二倍图、css3盒子模型、布局视口、视觉视口、理想视口...

    1.1物理像素 手机屏幕横向有828个点 手机屏幕纵向上有1792个点 同等大小屏幕下,点越多.图像显示越精细 上面所说屏幕上一个个点就是物理像素(physical pixel) 物理像素也叫设备像素 ...

最新文章

  1. mysql server uuids_slave have equal MySQL Server UUIDs原因及解决
  2. 解决“SCRIPT257: 由于出现错误 80020101 而导致此项操作无法完成。 ”
  3. org.quartz-scheduler 基础过程
  4. python线性加权回归_python深度学习-tensorflow实现一个线性回归的案例
  5. python批量下载文件-python 从远程批量下载文件到本地
  6. CommonJs, AMD/RequireJs,CMD/seajs
  7. C++ warning:’xxx‘ has no out-of-line virtual method definitions...
  8. QT的QMapIterator类的使用
  9. C++手动实现库函数
  10. @SuppressWarnings(resource)
  11. Linux下手动挂载新增磁盘
  12. 【前端后端运维】Web开发人员学习路线,汇总整理
  13. lopatkin俄大神精简中文系统Windows 10 Pro 19041.21 20H1 Release x86-x64 ZH-CN SMS
  14. java中国象棋编程思想_中国象棋网络对战平台系统.doc
  15. RabitMQ简介和原理分析(一)
  16. sql数据库可以创建同义词_如何使用同义词简化SQL Server数据库对象的使用
  17. 操作系统实验 生产者/消费者模型
  18. 香港科大三项研究登榜2020年度香港十大创科新闻
  19. 《名贤集》《明贤集》四言集
  20. 【电信学】【2016.02】基于IMU的遥控车自主导航位置跟踪

热门文章

  1. Jmeter 随机控制器-随机顺序控制器
  2. docker-compose 关机或者重启docker同时重启容器restart always的配置
  3. SQLSever的安装
  4. Postgresql学习笔记之——数据类型之字符串类型
  5. 04.tooltip提示框插件,linkbutton按钮插件与progressbar进度条插件
  6. Mybatis批量更新报错
  7. 一个轻便易用的消息队列
  8. 使用OpenCV实现人脸检测(Python)
  9. 聚乙烯吡咯烷酮PVP纳米纤维膜|多孔PVP纳米纤维薄膜-孔径20um-齐岳在线
  10. 计算机常见端口及其使用说明