93、Viewport详解
一、viewport概念
(1)移动端的viewport:
- 就是设备的屏幕上用来显示我们的网页的那一块区域;
- viewport又不局限于浏览器可视区域的大小,它可能比浏览器的可视区域要大(浏览器会出现横向滚动条),也可能比浏览器的可视区域要小。
(2)css中的1px并不是代表屏幕上的1px :
- 分辨率越大(物理像素),css中1px代表的物理像素就会越多(css像素是viewport的一个小方格);
- 手机屏幕的分辨率已经越来越高(物理像素),但屏幕尺寸却没有发生太大变化,必须让css中的1px代表更多的物理像素,才能让1px的东西在屏幕上的大小与那些低分辨率的设备差不多 。
(3)物理像素和逻辑像素(清晰易懂):
https://blog.csdn.net/zhouziyu2011/article/details/70176511
(4)布局视口layout viewport:
- layout viewport 是网页的所有内容,他可以全部或者部分展示给用户。
(5)理想视口 ideal viewport:
- 理想视口是与设备相关的,是布局视口的一个理想尺寸,只有当布局视口的尺寸等于设备屏幕的尺寸时,才是理想视口,此时文档对象宽度与屏幕宽度相同。
- 移动设备一般具有固定的DPR,即在缩放100%时,用多少个物理像素显示一个逻辑像素,在Web开发中就是用多少个物理像素去显示一个CSS像素。
理想视口宽度 = 移动设备横向分辨率 / DPR//获取理想视口宽度
window.screen.width
(6)视觉视口visual viewport
- visual viewport 就是当前显示给用户内容的窗口,你可以拖动或者放大缩小网页。
- 用户可以通过缩放来查看网站的内容。如果用户缩小网站,我们看到的网站区域将变大,此时视觉视口也变大了;用户放大网站,我们能看到的网站区域将缩小,此时视觉视口也变小了。
不管用户如何缩放,都不会影响到布局视口的宽度。
视觉视口的宽度 = 理想视口宽度 / 缩放比例
二、viewport具体用法
移动设备的默认布局视口往往大于理想视口,此时就会在横向出现滚动条才能完整的容纳页面。我们需要的是将页面的布局视口设置为理想视口
,这就轮到meta标签出场了。 该meta标签的作用是让layout viewport的宽度等于设备的宽度,同时控制是否允许用户手动缩放。
<meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=no">
6个属性值含义:
- width:控制viewport的宽度,这个值可以被指定,例如:500px。亦或者是“device-width”,意思是设置视口宽度为设备宽度。
- height:控制viewport的高度。height=device-height
- initial-scale:初始缩放比例,即每一次加载时页面缩放的比例。
- maximum-scale:允许用户缩放到的最大缩放比例。
- minimum-scale:允许用户缩放到的最小缩放比例。
- user-scaleable:是否允许用户缩放,可以传“yes”或“no”
(1)initial-scale属性
initial-scale属性用于设置页面初始的缩放比例,缩放比例为理想视口
与视觉视口
的比值。
即:scale = 理想视口idealViewport / 视觉视口visualViewport
- 当只指定
initial-scale属性
,而不设置width属性
时,浏览器会将布局视口宽度
设置为视觉视口宽度,以将页面正好铺满屏幕。 - 当指定
initial-scale = 1
,而不设置width属性
时,大部分浏览器会将布局视口宽度
设置为设备理想视口宽度
因为 initial-scale = 1
所以 视觉视口 = 理想视口 ÷ 1.0 = 理想视口
又因为 没有设置width
所以 视觉视口 = 布局视口
所以 视觉视口 = 布局视口 = 理想视口
- ❗ 当设置
initial-scale=1
且同时设置width属性
时,如果由理想视口 除以 inital-scale计算得到的视觉视
大于width
,则width会被浏览器重置为视觉视口
。(如果计算得到的视觉视口小于布局视口,就不会出现问题,只是会出现滚动条)原因是93、Viewport详解相关推荐
- HTML5之Viewport详解
做移动Web开发也有一年多的时间了,虽然手机上浏览器对于PC上来说很友好了,但是手机各种设备的显示尺寸分辨率大小不一也要花大心思兼容它们. 关于HTML5中Viewport的文章Google,百度一搜 ...
- viewport详解
这次想聊聊移动开发相关的事.是的,你没有看错,一句话就可以开始你的移动前端开发. 你心里一定在想,什么话这么酷,能够瞬间带入到移动前端开发的世界. 但其实它一点也不新奇,不复杂. viewport简介 ...
- java viewport,viewport详解
这次想聊聊移动开发相关的事.是的,你没有看错,一句话就可以开始你的移动前端开发. 你心里一定在想,什么话这么酷,能够瞬间带入到移动前端开发的世界. 但其实它一点也不新奇,不复杂. viewport简介 ...
- 什么是Viewport Meta(width详解)及在手机上的应用
查看视频地址: 什么是Viewport Meta(width详解)及在手机上的应用 viewport 是专为手机浏览器设计的一个meta标签: 有些屏幕很小有智能手机,但分辩率却可以做得很大,比如小米 ...
- 一零四、前端性能优化详解
1 前端性能优化 介绍 页面性能优化 浏览器 浏览器的主要作用 浏览器的组成结构 浏览器是多进程的 浏览器的渲染机制 重排reflow与重绘repaint 页面加载缓慢的原因 浏览器部分 代码部分 优 ...
- SVG实例详解系列(一)(svg概述、位图和矢量图区别(图解)、SVG应用实例)
SVG实例详解系列(一) (svg概述.位图和矢量图区别(图解).SVG应用实例) 目录 一.什么是SVG? (1).位图和矢量图概念(图解) (2).SVG的小例子 (a)笑脸符 (b).小鸟 (c ...
- 配置文件详解+AlertManager微信邮件告警配置
文章目录 前言 AlertManager告警简单部署 一.AlertManager告警简介 1.简介 2.告警规则组成 1)告警名称 2)告警规则 3.Alertmanager特性 1)分组 2)抑制 ...
- BootStrap实现带有增删改查功能的表格(DEMO详解)
前言 bootstrap的表格样式,有类似EasyUI的表格,也有卡片式表格,放到移动端显示,各有千秋.但是BootStrap自带的表格是没有操作列的,网上的资源不少,但是都是比较单一.零碎,JS.C ...
- 微服务--Docker详解
Docker详解 零.文章目录 一.Docker基础 1.容器发展 物理机 软件开发最大的麻烦事之一,就是环境配置.用户必须保证两件事:操作系统的设置,各种库和组件的安装.只有它们都正确,软件才能运行 ...
最新文章
- nodejs中的异步流程序控制nsync
- python 实现函数的递归
- c++指针引用导出文件
- leetcode 70. 爬楼梯(C语言)
- c++调用cplex求解例子_Java调用cplex求解运输问题
- Linux文件默认权限和umask笔记
- django 学习 (四) 模板标签
- 【转】ABP源码分析三:ABP Module
- 面向对象要点(构造函数)
- 解决VS中无法使用scanf的问题
- gdalwarp:变形工具
- java 多项式拟合最多的项数_matlab 多项式拟合EXCEL中复杂数据
- 然爸读书笔记(2013-3)----用户体验的要素
- 继承ActionSupport
- 会员积分系统的四大元素
- dw建站404问题,dw 404
- python为什么运行不了_终端里为什么无法运行python?
- MATLAB如何提取曲线原始数据
- blender 制作城市建筑模型
- JS And Vue代码调试——IDEA+JS+vue-devtools-dev+JetBrains IDE Support(Chrome插件)
热门文章
- HTML5之Viewport详解