自适应布局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 页面划词搜索JS
Sep 28 Javascript
javascript判断用户浏览器插件安装情况的代码
Jan 01 Javascript
读jQuery之十 事件模块概述
Jun 27 Javascript
JavaScript自定义数组排序方法
Feb 12 Javascript
Javascript实现商品秒杀倒计时(时间与服务器时间同步)
Sep 16 Javascript
老生常谈JavaScript 正则表达式语法
Aug 20 Javascript
一步一步封装自己的HtmlHelper组件BootstrapHelper(三)
Sep 14 Javascript
Vue实现内部组件轮播切换效果的示例代码
Apr 07 Javascript
浅谈Redux中间件的实践
Jul 27 Javascript
js中数组常用方法总结(推荐)
Apr 09 Javascript
详解微信小程序获取当前时间及日期的方法
Apr 28 Javascript
JS实现判断数组是否包含某个元素示例
May 24 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数字运算验证码的实现代码
2015/07/30 PHP
WordPress中用于获取搜索表单的PHP函数使用解析
2016/01/05 PHP
PHP 将dataurl转成图片image方法总结
2016/10/14 PHP
XML+XSL 与 HTML 两种方案的结合
2007/04/22 Javascript
javascript弹出层输入框(示例代码)
2013/12/11 Javascript
js中哈希表的几种用法总结
2014/01/28 Javascript
js判断滚动条是否已到页面最底部或顶部实例
2014/11/20 Javascript
jQuery动画与特效详解
2015/02/01 Javascript
jQuery Dialog对话框事件用法实例分析
2016/05/10 Javascript
Bootstrap响应式侧边栏改进版
2016/09/17 Javascript
微信分享调用jssdk实例
2017/06/08 Javascript
Vue.set()实现数据动态响应的方法
2018/02/07 Javascript
解决Vue+Electron下Vuex的Dispatch没有效果问题
2019/05/20 Javascript
如何使用JavaScript实现栈与队列
2019/06/24 Javascript
微信小程序 Storage更新详解
2019/07/16 Javascript
vue在响应头response中获取自定义headers操作
2020/07/24 Javascript
解决vue axios跨域 Request Method: OPTIONS问题(预检请求)
2020/08/14 Javascript
jquery插件实现轮播图效果
2020/10/19 jQuery
Python实现在线程里运行scrapy的方法
2015/04/07 Python
Python迭代器与生成器基本用法分析
2018/07/26 Python
Python如何使用k-means方法将列表中相似的句子归类
2019/08/08 Python
python 进程 进程池 进程间通信实现解析
2019/08/23 Python
django实现类似触发器的功能
2019/11/15 Python
python os.path.isfile()因参数问题判断错误的解决
2019/11/29 Python
python解析xml文件方式(解析、更新、写入)
2020/03/05 Python
anello泰国官方网站:日本流行包包品牌
2019/08/08 全球购物
IGK Hair官网:喷雾、洗发水、护发素等
2020/11/03 全球购物
会计出纳员的自我评价
2014/01/15 职场文书
倡议书格式
2014/04/14 职场文书
公司副总经理任命书
2014/06/05 职场文书
办公室主任个人对照检查材料思想汇报
2014/10/11 职场文书
警察正风肃纪剖析材料
2014/10/16 职场文书
2016年安全月活动总结
2016/04/06 职场文书
在Windows下安装配置CPU版的PyTorch的方法
2021/04/02 Python
深入解析MySQL索引数据结构
2021/10/16 MySQL
MongoDB连接数据库并创建数据等使用方法
2021/11/27 MongoDB