• linkedu视频
  • 平面设计
  • 电脑入门
  • 操作系统
  • 办公应用
  • 电脑硬件
  • 动画设计
  • 3D设计
  • 网页设计
  • CAD设计
  • 影音处理
  • 数据库
  • 程序设计
  • 认证考试
  • 信息管理
  • 信息安全
菜单
linkedu.com专业计算机教程网站
  • 网页制作
  • 数据库
  • 程序设计
  • 操作系统
  • CMS教程
  • 游戏攻略
  • 脚本语言
  • 平面设计
  • 软件教程
  • 网络安全
  • 电脑知识
  • 服务器
  • 视频教程
  • html/xhtml
  • html5
  • CSS
  • XML/XSLT
  • Dreamweaver教程
  • Frontpage教程
  • 心得技巧
  • bootstrap
  • vue
  • AngularJS
  • HBuilder教程
  • css3
  • 浏览器兼容
  • div/css
  • 网页编辑器
  • axure
您的位置:首页 > 网页设计 >html5 > HTML5移动端-viewport的详解

HTML5移动端-viewport的详解

作者:匿名 字体:[增加 减小] 来源:互联网 时间:2018-12-03

本文主要包含HTML5,移动端,viewport等相关知识,匿名希望在学习及工作中可以帮助到您
移动端页面大家都遇到过 viewport 的问题。关于 viewport 的文章有很多了,推荐给大家这两篇,写得非常详细。

本文对 viewport 做一些补充

手机屏幕

手机屏幕属于硬件属性,我们无论是通过 JS 还是 meta 标签都是无法影响到它的。

  • 手机屏幕物理像素,也就是手机厂商们说的像素、分辨率、PPI这些。

安卓常见的有 720X1280 , 1080X1920 等等
iPhone 则是 iPhone5 640X1136,iPhone6 750X1334,iPhone6P 1080X1920

  • 手机屏幕逻辑像素,物理像素经过折算之后的像素数。也就是理想视口的尺寸

iPhone5 屏幕本来是 640px 宽,但是折算成了 320px
iPhone6 物理像素 750px 款,折算成 375px
iPhone6P 略微奇葩一点,物理像素实际 1080px 宽,但是系统向外暴露的确是 1242px,再折算成了 414px

screen.width/height 可以获取屏幕的逻辑像素

布局视口 layout viewport

刚才讲过的屏幕物理像素和逻辑像素,这些都是手机厂商设置好的,我们是无法设置的,重点再与接下来的两个视口,大家千万别混淆了。

layout viewport 相当于浏览器的宽度。
我们是可以通过 <meta name="viewport" content="width=XXX">设置的。
默认情况下,layout viewport 一般为 980px 宽。

document.documentElement.clientWidth 可以获取 layout viewport 的宽度。

视觉视口 visual viewport

视觉视口可以看作是手机屏幕这么大的一个窗口,但是它能显示的像素个数却不是屏幕上面的这么多逻辑像素。

视觉视口不太容易理解,虽然手机屏幕的逻辑像素已经固定了,比如 iPhone5 是 320px。

但是屏幕这 320px 宽,却可以显示 980px 宽的内容,所以视觉窗口的宽度是 980px。
很多没有对移动端做适配的网页,我们用手机打开,发现网页被缩小到手机屏幕这么宽了。

重点就在于缩放,缩放让320px的屏幕能显示更多内容了。
window.innerWidth 可以获取 visual viewport 的宽度。

通过 <meta name="viewport" content="initial-scale=x"> 可以设置 visual viewport 的宽度。
visual viewport 的宽度为 screen.width / initial-scale
同时,也会影响到 布局视口 的宽度,因为布局视口的宽度始终大于等于 visual layout 的宽度。

如果不设置 initial-scale ,iOS设备会自动将 visual viewport 缩放到 布局视口一样大。

还记得默认的 布局视口 是多宽吗?

屏幕逻辑像素、布局视口、视觉视口 三者的关系

<meta name="viewport" content="width=device-width">

将 layout viewport 的宽度设置为 屏幕宽

<meta name="viewport" content="width=640">

将 layout viewport 宽度设置为 640px (逻辑像素,而不是物理像素)

<meta name="viewport" content="initial-scale=0.5">

将 visual viewport 设置为 屏幕宽度的 2 倍(正确的理解是:visual viewport 的 0.5 倍是屏幕宽度,所以 visual viewport 的宽度就是屏幕的2倍了)

此时 布局视口的宽度也是 屏幕宽的2倍,而不再是默认的 980px 了

总结:

1、默认情况下 layout viewport 为 980px
2、width=x 设置布局视口,initial-scale=y 设置视觉视口
3、如果只设置 布局视口 和 视觉视口 中的一个,那么另一个也是同样的宽度
4、布局视口 的宽度始终大于等于 视觉视口

举例 iPhone 5 上面

<meta name="viewport" content="width=600,initial-scale=0.5">

那么视觉视口和布局视口分别是多宽呢?

最后的最后,终于到了我们耳熟能详的

<meta name="viewport" content="width=device-width,initial-scale=1.0">

大家知道这是什么意思了吧。
layout viewport 浏览器窗口,设置为屏幕宽度。
visual viewport 也设置为屏幕宽度,不缩放,屏幕有多宽,就显示多少像素。
也就是所谓的完美视口。

以上就是HTML5移动端-viewport的详解的详细内容,更多请关注微课江湖其它相关文章!

您可能想查找下面的文章:

  • HTML5知识点总结
  • HTML5的本地存储
  • HTML5本地存储之IndexedDB
  • Html5实现文件异步上传功能
  • Html5新标签datalist实现输入框与后台数据库数据的动态匹配
  • 详解HTML5 window.postMessage与跨域
  • HTML5拖放API实现拖放排序的实例代码
  • 解决html5中video标签无法播放mp4问题的办法
  • HTML5新特性 多线程(Worker SharedWorker)
  • Html5新增标签有哪些

相关文章

  • 2018-12-03在Vuejs里利用index对第一项添加class的方法
  • 2017-08-06HTML5 实现一个访问本地文件的实例
  • 2018-12-03快速开发基于HTML5网络拓扑图应用的详解(图文)
  • 2018-12-03如何使用canvas画一个圆?用canvas画圆的三种动态实现方法
  • 2018-12-03Html5 Canvas初探学习笔记(12) -图片裁减和调整
  • 2018-12-03介绍几个超炫酷的HTML5动画演示及源码的图文详解
  • 2018-12-03HTML5实现Tab切换(通过js代码)
  • 2018-12-03canvas如何实现github404动态
  • 2017-08-06HTML5 script元素async、defer异步加载使用介绍
  • 2018-12-03怎样用H5计算手机摇动次数

文章分类

  • html/xhtml
  • html5
  • CSS
  • XML/XSLT
  • Dreamweaver教程
  • Frontpage教程
  • 心得技巧
  • bootstrap
  • vue
  • AngularJS
  • HBuilder教程
  • css3
  • 浏览器兼容
  • div/css
  • 网页编辑器
  • axure

最近更新的内容

    • html5开始播放当前的音频或视频的方法
    • HTML5中缩略词标记的重要作用
    • 详细介绍HTML5简易在线画图工具的实现案例
    • HTML5新增属性之拖拽属性(介绍)
    • html5的画布canvas——画出弧线、旋转的图形实例代码+效果图
    • phonegap进行提示操作的具体示例代码分享
    • html5之canvas进阶的代码详解(图)
    • 解决在HTML5中的video标签无法播放视频的方法
    • 百行 HTML5 代码实现四种双人对弈游戏
    • 移动站如何使用?总结移动站实例用法

关于我们 - 联系我们 - 免责声明 - 网站地图

©2020-2025 All Rights Reserved. linkedu.com 版权所有