博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
layout-viewport与visual viewport意义初级探知
阅读量:5101 次
发布时间:2019-06-13

本文共 1460 字,大约阅读时间需要 4 分钟。

当手机网页还没有大部分的应用时候,所以再设计网页显示的时候,只是关注于页面布局在电脑上的显示,此时,设计的网页像素和物理像素相匹配的,但另一方面,手机在打开该网页的时候,就出现了问题,比如:侧边栏设置显示为30%,在手机像素为320px中,意味着该侧边栏只有96px,如果一个字体像素为12px,也只能显示出8个字体,这对于手机用户来说是一件很操蛋的事!!

  但是,这种状况被苹果的safari浏览器所终止,苹果在移动版的ios系统中专门为safari定制了一个viewport属性,该属性专门用来优化移动端网页显示效果,

比如:在物理像素320px,也就是说,visual viewport=320px,使用了viewport属性,就会创建一个虚拟的viewport窗口:layout viewport;其中layout viewport=960px;这样,为电脑设计的网页也同样可以在手机端正常的显示,随着发展,又一个问题随之而来:就是有些专门为手机端(移动设备)设计的网页,在使用了viewport属性的浏览器中显示的时候,会出现缩放的情况,因为这个移动设备网页是在虚拟的视图中layout viewport显示的,你想一下:一个设计显示在320px的视图中,而却在960px像素中显示,明显的页面会被缩放,这就需要另一个属性进行设置:user-scalable的属性;

viewport在网页中的设置方法:通过meta属性设置:

<head>

<meta name=”viewport” content=”width=device-width, initial-scale=1.0, user-scalable=no”/>
</head>

 

viewport全部属性&值如下:

width: viewport宽度

height: viewport高度
initial-scale: 初始缩放比例
maximum-scale: 最大缩放比例
minimum-scale: 最小缩放比例
user-scalable: 是否允许用户缩放

layout viewport的默认值

在Apple实现viewport后,其他浏览器也加入了对viewport meta的支持,但彼此间还是有些差异,差异最大的是layout viewport的表现:

Safari iPhone: 980px

Opera: 850px
Android WebKit: 800px
IE: 974px

device-width值:

其实这个属性值很有意思,字面意应该是viewport宽度等于设备宽度,但在实际中不同的浏览器都给出了个定值:320px;这个值还是源于Apple,因为早期iphone的分辨率为320px × 480px,大量为iphone量身定制的网站都设置了viewport:width=device-width,并且按照宽度320px来设计制作,所以其他浏览器加入viewport支持时为了兼容性也将device-width定义为了320px。

注意:

  当web移动开发时候,使用media query进行判断的时候,device-width就不能作为判断的样式的条件了,这需要visual viewport参与进来,有关文章总结会在下篇博客进行:参考文章地址

参考文章:

转载于:https://www.cnblogs.com/ThunderFox/archive/2012/07/13/2590680.html

你可能感兴趣的文章
Python 入门笔记 字符串 变量 标示符
查看>>
初入react -02
查看>>
C++中的指针(*)、引用(&)、const详解(一、定义变量)
查看>>
HDU P4578 Transformation
查看>>
POJ2774 Long Long Message 【后缀数组lcp】
查看>>
常用类型的字节和位的关系
查看>>
Linux系统网络文件配置
查看>>
vue中eslintrc.js配置最详细介绍
查看>>
Swift基础--手势识别(双击、捏、旋转、拖动、划动、长按)
查看>>
Swift - 使用UI Dynamics给UIKit组件添加移动吸附行为
查看>>
android 判断是否有sim卡及运营商
查看>>
Android应用程序组件Content Provider简要介绍和学习计划
查看>>
Android Json生成及解析实例
查看>>
Android设置Activity背景为透明style
查看>>
蓝牙及蓝牙耳机工作原理
查看>>
uva 331 Mapping the Swaps 求交换排序的map 纯DFS
查看>>
implementationnullWhy should I care about BPMN 2.0?
查看>>
MySQL + Atlas --- 部署读写分离
查看>>
【spring cloud】spring cloud zuul 路由网关
查看>>
小诗句集萃二四
查看>>