首页 / 知识
html5 viewport总结讲述
2023-04-11 15:16:00
本篇文章是关于HTML5中的viewport的一个讲述,对于HTML5中viewport不太熟悉的同学,我们可以一起看看本篇文章!来详细的了解一下html5中的viewport
总结下来无非围绕三个问题:
1、为什么要设置虚拟窗口
起初是为了使得虚拟窗口的分辨率和pc端接近,这样虚拟窗口依然能够完整显示页面内容,只是页面内容比较小,需要通过手动缩放的方式来看清楚页面。
2、添加viewport有什么用
添加viewport是为了方便移动端的优化。设置虚拟窗口宽度为device-width,与设备的物理像素相同,这样我们就可以通过media来控制页面移动界面的显示方式。
3、设备屏幕宽度(即设备的物理像素)与分辨率的关系
以iphone6为例,其屏幕实际大小为375*667,然而其分辨率达到750*1334,这两者是不同的概念。
物理尺寸是指屏幕的实际大小。大的屏幕同时必须要配备高分辨率,也就是在这个尺寸下可以显示多少个像素,显示的像素越多,可以表现的余地自然越大。两台手机的屏幕大小差不多大,却一个只能显示两行汉字,另一个则可以显示五行汉字,抛开字体大小差别,关键就是屏幕的分辨率,后者分辨率大一些,自然在同样字体大小下可以显示更多行的汉字。彩屏手机的确好,没有足够大分辨率的屏幕表现,再高的颜色质量又有何用。
下面我们来解释一下viewport的作用和它怎样与media结合。
一个50像素宽的p在pc浏览器显示可能刚好,但是如果在手机浏览器显示就会显得过大。怎么解决这个问题呢?Apple找到了一个办法:在移动版(iOS)的Safari中定义了viewportmeta标签,它的作用就是创建一个虚拟的窗口(viewport),而且这个虚拟窗口的分辨率接近于桌面显示器,Apple将其定位为980px。也就是当我用浏览器中打开任意的一个页面,这个页面的宽度为980px,而不是屏幕的物理宽度。
以一代iphone6下的Safari来说就是:
在iphone6的375px物理屏幕上——视觉窗口(visualviewport),创建出了一个980px的虚拟窗口——布局窗口(layoutviewport),在视觉窗口(visualviewport)中我们可以拖动横向竖向滑动条或者放大缩小网页,来达到最佳的浏览效果(类似桌面浏览器);而布局窗口(layoutviewport)用来配合CSS渲染布局,例如当我们设置一个容器的宽度为100%时,这个容器的实际值为980px而不是375px。如此一来大部分网页就能以缩放的形式正常的显示在手机屏幕上了。
虚拟窗口980px在屏幕上的实际尺寸是多大?
iphone6屏幕的物理像素是375px,虚拟窗口的宽度是980px,这两者的1px大小是不想等,说得更简单一点就是此px非彼px,一个是用来形容实际窗口即视觉窗口的大小,一个是用来形容虚拟窗口的大小,没什么相关的。(可以通过chromn来检查页面在pc浏览器和手机浏览器的宽度。)
safari浏览器、opera浏览器、chromn浏览器虚拟窗口大小默认都是980px,火狐浏览器默认开启手机模式,其虚拟窗口宽度就是设备宽度。
智能手机创建出虚拟窗口后,又出现一个问题,pc端网页在手机浏览器打开后无论是字体还是其它元素都显得比较小,看起来比较吃力,动手缩放又显得比较麻烦。apple又弄出个viewport用来调整虚拟窗口的大小,一般我们会这样写
<metaname="viewport"content="width=device-width,initial-scale=1,user-scalable=1">
device-width表示设置虚拟窗口的大小同设备的物理像素宽度相等。这样方便我们使用media写一个专门适配移动端的页面,这样我们就可以在移动端看到合适大小的页面。
本文转载自中文网 |
最新内容
相关内容
文本处理用c还是用python
文本处理用c还是用python,位置,培训,包装,对比,字符串,函数,文本,语言,字符,效率,文本处理python与c的对比:如下c++语言:C++语言实现C++中没有机器学习用java还是python?
机器学习用java还是python?,分析,环境,数据,培训,发展,机器,结果,控制台,生态环境,有用,机器学习用python更合适。机器学习不需要面向对象,不python是解释型吗?
python是解释型吗?,工作,平台,培训,解释性,虚拟机,语言,高层次,源码,脚本语言,之前,python是一种跨平台的计算机程序设计语言。是一个高层次实数是不是python的数据类型?
实数是不是python的数据类型?,数字,标准,培训,实数,数据类型,数轴,复数,有限小数,无理数,虚数,实数是python的数据类型。实数,是有理数和无理python判断xml是否存在某一节点?
python判断xml是否存在某一节点?,数据,培训,节点,方法,结果,表达式,长度,以上,更多,内容,python中判断xml是否存在某一节点的方法:使用selectNpython列表是否允许重复
python列表是否允许重复,培训,表里,元素,字典,列表,方法,长度,种类,也就是,下面,python列表允许重复,下面我们就来介绍几种判断列表是否重复的python字典中值是否能重复?
python字典中值是否能重复?,数字,培训,字典,中值,格式,字符串,数据类型,以上,更多,内容,python字典中的值可以重复。字典中的键必须是唯一的,python中的int是什么意思?
python中的int是什么意思?,数字,数据,培训,字符串,参数,语法,实例,以下,方法,函数,python中的int()函数用于将一个字符串或数字转换为整型。python如何检测字符串是不是全为字
python如何检测字符串是不是全为字母?,检测,培训,字符串,字母,方法,字符,示例,语法,以上,更多,python中可以使用isalpha()方法检测字符串是不python-minimal是什么
python-minimal是什么,管理系统,培训,子集,语言,最小,版本,模块,进程,以上,任务,python-minimal是Python2语言的最小子集,包含解释器和一些重def在python中是什么?
def在python中是什么?,名称,代码,培训,函数,圆括号,参数,表达式,选择性,字符串,自变量,def在python中的意义:自定义一个函数你可以定义一个由Python库与模块的区别是什么?
Python库与模块的区别是什么?,名称,概念,标准,机构,培训,名字,代码,模块,区别,函数,python库与模块的区别是:模块、库主要区别在于他们的定义