viewport原理和使用和设置移动端自适应的方法

HTML中:

<meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=0">

  

该meta标签的作用是让当前viewport的宽度等于设备的宽度,同时不允许用户手动缩放。当然maximum-scale=1.0, user-scalable=0不是必需的,是否允许用户手动播放根据网站的需求来定,但把width设为width-device基本是必须的,这样能保证不会出现横向滚动条。

meta viewport 的6个属性:

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

  

<meta name="viewport" content="width=device-width, initial-scale=1, minimum-scale=1, maximum-scale=1, user-scalable=yes">

  对于这行代码我们是不是每次都得把这五个属性都写上呢?答案肯定是否定的,例如:如果你添加了user-scalable=no 那么,minimum-scale=1, maximum-scale=1这两个属性就没必要追加了。因为你都已经禁止了用户缩放页面了,允许的缩放范围也就不存在了。

//没必要追加minimum-scale=1, maximum-scale=1这两个属性了
<meta name="viewport" content="width=device-width, initial-scale=1, user-scalable=no">

  3个viewport

(1)layout viewport——布局视窗

如果把移动设备上浏览器的可视区域设为viewport的话,某些网站会因为viewport太窄而显示错乱,所以这些浏览器就默认会把viewport设为一个较宽的值,比如980px,使得即使是那些为PC浏览器设计的网站也能在移动设备浏览器上正常显示。这个浏览器默认的viewport叫做 layout viewport。layout viewport的宽度可以通过 document.documentElement.clientWidth来获取。 
(2)visual viewport——视觉视窗 
layout viewport的宽度是大于浏览器可视区域的宽度的,所以还需要一个viewport来代表浏览器可视区域的大小,这个viewport叫做 visual viewport。visual viewport的宽度可以通过 document.documentElement.innerWidth来获取。 
(3)ideal viewport——理想视窗 
ideal viewport是一个能完美适配移动设备的viewport。首先,不需要缩放和横向滚动条就能正常查看网站的所有内容;其次,显示的文字、图片大小合适,如14px的文字不会因为在一个高密度像素的屏幕里显示得太小而无法看清,无论是在何种密度屏幕,何种分辨率下,显示出来的大小都差不多。这个viewport叫做 ideal viewport。 
ideal viewport并没有一个固定的尺寸,不同的设备有不同的ideal viewport。例如,所有的iphone的ideal viewport宽度都是320px,无论它的屏幕宽度是320还是640。 
ideal viewport 的意义在于,无论在何种分辨率的屏幕下,针对ideal viewport 而设计的网站,不需要缩放和横向滚动条都可以完美地呈现给用户。

viewport设置移动端自适应的方法:

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

  

最新文章

  1. python windows时间同步工具
  2. servlet中Java连接数据库后的基本操作
  3. git fetch和git pull之间的区别--转载
  4. 使用程序获取整型数据和浮点型数据在内存中的表示---gyy整理
  5. 定时执行程序-Quartz简单实例
  6. java 图形界面
  7. GAN︱GAN 在 NLP 中的尝试、困境、经验
  8. 分布式架构设计(一) --- 面向服务的体系架构 SOA
  9. mysql gtid 主从复制
  10. vsphere client/web client 开启ESXi SSH服务
  11. MySQL MGR+ Consul之数据库高可用方案
  12. easy-ui treegrid 实现分页 并且添加自定义checkbox
  13. 同一个dll 不同路径下注册 一个失败 一个成功
  14. window7安装python的xgboost库方法
  15. Dijkstra和Prim算法的区别
  16. windows下搭建Consul分布式系统和集群
  17. cas单点登录实现
  18. 基于js利用经纬度进行两地的距离计算(转)
  19. JavaScript学习(二)——深入学习js对象的原型与继承
  20. centos 系统安装基本步骤,面试必考

热门文章

  1. pat00-自测4. Have Fun with Numbers (20)
  2. bnu 28890 &amp;zoj 3689——Digging——————【要求物品次序的01背包】
  3. Java Web SpringMVC AJAX,实现页面懒加载数据
  4. C# 在窗体的子线程中创建新窗体
  5. javaSE练习2——流程控制_2.1
  6. 微服务学习笔记一:Spring Cloud简介
  7. for计算位置坐标
  8. Easy deployment
  9. SharePoint 2013 - App Domain Configuration
  10. SharePoint 2013 - Breadcrumb