自适应布局meta标签中viewport、content、width、initial-scale、minimum-scale、maximum-scale总结


Posted in Javascript onAugust 18, 2017

一、先明白几个概念

phys.width:

device-width:

一般我们所指的宽度width即为phys.width,而device-width又称为css-width。

其中我们可以获取phys.width即width通过document.documentElement.clientWidth;而获取css-width通过 window.screen.width获取。如iphone6的phys.width为750px,而css-width为375px。

二、明白一个浏览器默认行为。

试想,浏览器如果把电脑端的980px的网页展现在宽度为750px的iphone6手机屏上,势必会放不下,手机端横向会出现滚动条,怎么阻止这种情况呢,很简单,浏览器默认一个虚拟窗口,不同浏览器有不同的虚拟窗口宽度的默认值如:safari iphone:980px;

opera:850px; Andriod webkit:800px;IE:974px;然后会把这个980px虚拟窗口装进宽度为750px的iphone6中,当然这样的话必须缩放,这就是为什么在手机中展现电脑端页面没有出现横向滚动条,而且字迹明显变小的原因。

三、讲解meta name= viewport content= width=device-width initial-scale=1 minimum-scale=1 maximum-scale=1

meta标签中,width有两个含义,第一、width为phys.width,第二,width也为虚拟窗口的width。这样就会有两个结果:

1、此时的iPhone6的phys.width也变成了css-width即375px,我们可以通过document.documentElement.clientWidth获取得到此时phys.width确实为375px。

2、如你设计的是375px的手机端页面,此时的虚拟窗口的宽度也为375px,再装进phys.width为375px的手机,当然如设计稿一样的效果,不会缩放,也不会出现横向滚动条。

四、对响应式布局,媒体查询的影响

@media only screen and (min-width: 350px) and (max-width: 480px){.....................}

如没有meta标签,此时的width当然即为phys.width,iPhone6就不会执行上边的括号里边的代码,但是有了meta标签以后呢,width变成了css-width,即为375px,,所以是会执行代码的。

五、论meta标签的影响

从上边可以看出,有了meta标签以后,原本的iPhone6,即像素比为2的手机,可以按照css-width相同的像素比为1的手机一样正常显示,像素比更高的手机也能正常显示。当然现在andriod的2K屏在meta标签的帮助下也能正常显示。即对于开发者来说,已经可以不管手机的像素比,只需按照css像素编写代码即可。

参考链接: https://3water.com/article/121531.htm     
参考链接:  https://3water.com/article/121524.htm

以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作能带来一定的帮助~如果有疑问大家可以留言交流,谢谢大家对三水点靠木的支持!

Javascript 相关文章推荐
javascript陷阱 一不小心你就中招了(字符运算)
Nov 10 Javascript
关于获取DIV内部内容报错的原因分析及解决办法
Jan 29 Javascript
AngularJS变量及过滤器Filter用法分析
Nov 22 Javascript
jQuery开源组件BootstrapValidator使用详解
Jun 29 jQuery
es7学习教程之Decorators(修饰器)详解
Jul 21 Javascript
Node.js调用fs.renameSync报错(Error: EXDEV, cross-device link not permitted)
Dec 27 Javascript
vue使用vue-i18n实现国际化的实现代码
Apr 08 Javascript
小程序两种滚动公告栏的实现方法
Sep 17 Javascript
javascript自定义右键菜单插件
Dec 16 Javascript
JavaScript对象字面量和构造函数原理与用法详解
Apr 18 Javascript
微信小程序实现上传多张图片、删除图片
Jul 29 Javascript
vue同个按钮控制展开和折叠同个事件操作
Jul 29 Javascript
JS实现页面打印(整体、局部)
Aug 18 #Javascript
简单实现jQuery轮播效果
Aug 18 #jQuery
JavaScript编写的网页小游戏,很给力
Aug 18 #Javascript
ReactJs实现树形结构的数据显示的组件的示例
Aug 18 #Javascript
基于 Vue 的树形选择组件的示例代码
Aug 18 #Javascript
简单实现jQuery手风琴效果
Aug 18 #jQuery
JavaScript中Hoisting详解 (变量提升与函数声明提升)
Aug 18 #Javascript
You might like
php 获取客户端的真实ip
2009/11/30 PHP
优化php效率,提高php性能的一些方法
2011/03/24 PHP
基于flush()不能按顺序输出时的解决办法
2013/06/29 PHP
php列出mysql表所有行和列的方法
2015/03/13 PHP
php微信公众平台开发之微信群发信息
2016/09/13 PHP
PHP实现对xml的增删改查操作案例分析
2017/05/19 PHP
解决php extension 加载顺序问题
2019/08/16 PHP
js 操作select相关方法函数
2009/12/06 Javascript
Nodejs Stream 数据流使用手册
2016/04/17 NodeJs
js改变透明度实现轮播图的算法
2020/08/24 Javascript
jQuery实现的多张图无缝滚动效果【测试可用】
2016/09/12 Javascript
通过修改360抢票的刷新频率和突破8车次限制实现方法
2017/01/04 Javascript
JS实现移动端实时监听输入框变化的实例代码
2017/04/12 Javascript
Cpage.js给组件绑定事件的实现代码
2017/08/31 Javascript
vue动态绑定class的几种常用方式小结
2019/05/21 Javascript
使用ThinkJs搭建微信中控服务的实现方法
2019/08/08 Javascript
vue  elementUI 表单嵌套验证的实例代码
2019/11/06 Javascript
javascript canvas时钟模拟器
2020/07/13 Javascript
python基于BeautifulSoup实现抓取网页指定内容的方法
2015/07/09 Python
python虚拟环境virtualenv的使用教程
2017/10/20 Python
Python编程django实现同一个ip十分钟内只能注册一次
2017/11/03 Python
浅谈python中对于json写入txt文件的编码问题
2018/06/07 Python
Python中format()格式输出全解
2019/04/12 Python
python实现视频读取和转化图片
2019/12/10 Python
Python虚拟环境的创建和包下载过程分析
2020/06/19 Python
Python中用xlwt制作表格实例讲解
2020/11/05 Python
HTML5语音识别标签写法附图
2013/11/18 HTML / CSS
英国HYPE双肩包官网:英国本土时尚潮牌
2018/09/26 全球购物
Guess美国官网:美国知名服装品牌
2019/04/08 全球购物
物流管理毕业生自荐信
2013/10/24 职场文书
企业法人代表授权委托书
2014/10/02 职场文书
七一建党节慰问信
2015/02/14 职场文书
幼儿园教学工作总结2015
2015/05/12 职场文书
婚礼必备主持词范本!
2019/07/23 职场文书
2019年圣诞节祝福语集锦
2019/12/25 职场文书
Python如何让字典保持有序排列
2022/04/29 Python