什么是 Viewport?viewport 是用户网页的可视区域。

viewport 翻译为中文可以叫做”视区"。

手机浏览器是把页面放在一个虚拟的”窗口"(viewport)中,通常这个虚拟的"窗口"(viewport)比屏幕宽,这样就不用把每个网页挤到很小的窗口中(这样会破坏没有针对手机浏览器优化的网页的布局),用户可以通过平移和缩放来看网页的不同部分。

简单点来讲:移动设备上的viewport就是屏幕上能用来显示我们的网页的那一块区域。

viewport不局限于浏览器可视区域的大小,一般来讲要比浏览器的可视区域要大。

layout viewport:浏览器默认的viewport,其宽度宽度可以通过 document.documentElement.clientWidth 来获取。

visual viewport:浏览器可视区域的大小的宽度,可以通过window.innerWidth 来获取。

一般来讲,移动设备上的viewport都是要大于浏览器可视区域的,这是因为考虑到移动设备的分辨率相对于桌面电脑来说都比较小,所以为了能在移动设备上正常显示那些传统的为桌面浏览器设计的网站,移动设备上的浏览器都会把自己默认的viewport设为980px或1024px(也可能是其它值,这个是由设备自己决定的),但带来的后果就是浏览器会出现横向滚动条,因为浏览器可视区域的宽度是比这个默认的viewport的宽度要小的。下图列出了一些设备上浏览器的默认viewport的宽度。

很显然viewport的宽度并不等于设备屏幕的宽度,滚动条和缩放页面也不是我们想要的效果。那么怎么办呢?改轮到meta标签收拾残局了。

开发移动端页面时,我们最常见的一个写法就是在head标签中加入:

它的作用就是让设备的viewport的width等于设备的width;同时禁止了设备的手动缩放功能。

meta viewport 标签首先是由苹果公司在其safari浏览器中引入的,目的就是解决移动设备的viewport问题。后来安卓以及各大浏览器厂商也都纷纷效仿,引入对meta viewport的支持

在meta viewport 中有6个属性,如下:

  • width:控制 viewport 的大小,可以指定的一个值,如果 600,或者特殊的值,如 device-width 为设备的宽度(单位为缩放为 100% 时的 CSS 的像素)。
  • height:和 width 相对应,指定高度。
  • initial-scale:初始缩放比例,也即是当页面第一次 load 的时候缩放比例。
  • maximum-scale:允许用户缩放到的最大比例。
  • minimum-scale:允许用户缩放到的最小比例。
  • user-scalable:用户是否可以手动缩放。

可以理解 “width=device-width”的作用就是把viewport的宽度变成了设备的宽度,无论竖屏还是横屏都一样,回头看下为什么我们在手机上打开一个正常的pc端网站,在没有手动缩放的情况下,页面会自动缩小到适合手机的屏幕的尺寸?

因为在没有指定缩放值的情况下,移动设备会自动计算initial-scale的值保证 layout viewport 也就是页面宽度自动适配浏览器的可视宽度。

另外有时候根据项目需要,我们需要隐藏iOs的上下状态栏实现全屏,只需要再meta标签中加入如下代码就能轻松实现:

 此属性只针对 iOS,content只有 yes or no。

最后祝各位在像素世界里玩儿的开心!

ios开发 微博图片缩放处理错误_H5响应式开发必会之Viewport(视窗)详解相关推荐

  1. 移动web网页开发——项目:生活资讯网(响应式开发)

    前两篇内容讲述了流式布局,flex布局,rem适配布局,响应式布局四种布局页面,今天我们就以学习的内容来完成项目"生活资讯网"的设计. 我们在设计开发生活资讯网可以选择的开发方式很 ...

  2. Web前端面试指导(四十四):什么是响应式开发?

    题目点评 响应式开发是前端开发工作比较常见的工作内容,随着移动端的发展,网页设计必须考虑到移动端的设计,同一个网站为了兼容PC端和移动端显示,响应式开发是前端开发人员必备的技术,所以响应式开发的技术必 ...

  3. 浅谈响应式开发与自适应布局!

    谈到响应式,大家不自觉的会想到什么? 首先映入眼帘的便是随着网页宽度变化而网页内容呈现出不同内容的效果!那么由来是什么呢? 2009时间段,互联网发生了一件天大的事情! 那就是在北京时间2009年6月 ...

  4. Bootstrap 响应式开发(2021.10.13)

    目录 一.响应式开发 1.框架含义 2.响应式 3.响应式尺寸划分 二.Bootstrap简介 1.Bootstrap概念 2.查阅Bootstrap文档 3.Bootstrap的使用 (1)创建文件 ...

  5. 前端开发神器Hype3初体验-可视化、响应式、动效

    背景 之所以接触到这个开发工具,还是因为项目需要,我本来是做Android开发的,后来因为公司前端开发人员不够,然后开始做手机端网页开发,接触了Vue,后来前端开发离职,我只好又接手Web开发,本身对 ...

  6. 移动端WEB开发之响应式布局(响应式开发原理、bootstrap、阿里百秀案例)

    移动端WEB开发之响应式布局 1.1 响应式开发原理 就是使用媒体查询针对不同宽度的设备进行布局和样式的设置,从而适配不同设备的目的. 设备的划分情况: <!DOCTYPE html> & ...

  7. 响应式开发中合理选定CSS媒体查询分割点

    本文响应式开发中合理选定CSS媒体查询分割点翻译自David Gilbertson的The-100%-Correct-Way-To-Do-CSS-breakpoints一文.本文唔看上去有些拗口,不过 ...

  8. 微金所页面制作(Bootstrap 响应式开发 栅格布局 响应式布局)

    该页面适用于 PC端 和 移动端,在响应式开发的媒体查询下能够适配所有屏幕. 一.页面效果 二.结构样式说明 (需引入bootstrap 相关样式文件) 结构分为八块: 头部块:.wjs_header ...

  9. Qt开发技术:QCharts(三)QCharts样条曲线图介绍、Demo以及代码详解

    若该文为原创文章,转载请注明原文出处 本文章博客地址:https://blog.csdn.net/qq21497936/article/details/108022984 各位读者,知识无穷而人力有穷 ...

最新文章

  1. 田志刚:要你共享,但不告诉你共享什么
  2. Unity脚本生成插件:Script Create Dialog
  3. 正则表达式re模块使用介绍
  4. [云炬python3玩转机器学习] 5-6最好的衡量线性回归法的指标: R Squared
  5. 聚类算法小记(part1)--基于密度峰快速搜索的聚类算法
  6. 树莓派okdo_创客的AK47—树莓派4正式发布,性能大幅提升,售价仅为35美元。
  7. mysql 导入百万级数据 几种 java_Java 修行第034天--执行计划及其使用--Oracle数据导入导出--第三章MySQL使用...
  8. 机器学习预测+akshare
  9. 【Salient Object Detection】显著性物体检测资料汇总
  10. C#/.Net开发入门篇(1)——开发工具安装
  11. 2017.9.7 骑士 思考记录
  12. HTTP/1.1与HTTP/1.0的区别
  13. 使用数据库镜像保障高可用的数据库应用(下)
  14. tensorflow学习笔记(2):创建自定义Estimator
  15. SAP 服务器文件上传和下载
  16. IEC61850概述
  17. MacOS Monterey 12.5.1 (21G83) OC 0.8.4 / Cl 5148 / PE 三分区原版黑苹果镜像
  18. python爬取公众号推荐,用python爬取公众号的方法
  19. Mysql基本知识1
  20. 苏教版四年级下册计算机说课稿,苏教版四年级下册认识多位数说课稿

热门文章

  1. MindSpore网络模型类
  2. 英特尔Intel® Arria® 10 FPGA加速器设计
  3. 自动驾驶感知系统盘点
  4. 用html编写一个贪吃蛇,HTML编写的贪吃蛇代码
  5. linux shell下获取cpu温度
  6. Linux内核分析——可执行程序的装载
  7. IT阅读——关于“业务”
  8. AE 9.3代码 升级到AE10.0
  9. JavaScript(转载)
  10. NHibernate初学体验记