自适应布局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实现检测指定目录是否存在的方法
Jan 12 Javascript
JQuery textlimit 显示用户输入的字符数 限制用户输入的字符数
May 14 Javascript
jquery键盘事件介绍
Jan 31 Javascript
用JS控制回车事件的代码
Feb 20 Javascript
Jquery遍历节点的方法小集
Jan 22 Javascript
ext combobox动态加载数据库数据(附前后台)
Jun 17 Javascript
分享一个自己写的简单的javascript分页组件
Feb 15 Javascript
JavaScript对象数组的排序处理方法
Oct 21 Javascript
浅谈javascript的闭包
Jan 23 Javascript
jQuery:unbind方法的使用详解
Aug 14 jQuery
vue项目实现github在线预览功能
Jun 20 Javascript
ES6中定义类和对象的方法示例
Jul 31 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
中国站长站 For Dede4.0 采集规则
2007/05/27 PHP
PHP的Laravel框架中使用AdminLTE模板来编写网站后台界面
2016/03/21 PHP
php连接oracle数据库的方法(测试成功)
2016/05/26 PHP
apache php mysql开发环境安装教程
2016/07/28 PHP
select组合框option的捕捉实例代码
2008/09/30 Javascript
jQuery Tools Dateinput使用介绍
2012/07/14 Javascript
JQuery加载图片自适应固定大小的DIV
2013/09/12 Javascript
jquery的attr方法禁用表单元素禁用输入内容
2014/06/23 Javascript
无缝滚动的简单实现代码(推荐)
2016/06/07 Javascript
深入浅出讲解ES6的解构
2016/08/03 Javascript
JS函数修改html的元素内容,及修改属性内容的方法
2016/10/28 Javascript
在js里怎么实现Xcode里的callFuncN方法(详解)
2016/11/05 Javascript
利用node.js爬取指定排名网站的JS引用库详解
2017/07/25 Javascript
Vue.js项目中管理每个页面的头部标签的两种方法
2018/06/25 Javascript
react写一个select组件的实现代码
2019/04/03 Javascript
koa+mongoose实现简单增删改查接口的示例代码
2019/05/13 Javascript
vue router动态路由设置参数可选问题
2019/08/21 Javascript
微信小程序地图绘制线段并且测量(实例代码)
2020/01/02 Javascript
ES6中Promise的使用方法实例总结
2020/02/18 Javascript
[02:39]DOTA2英雄基础教程 天怒法师
2013/11/29 DOTA
[35:34]Liquid vs Winstrike 2018国际邀请赛小组赛BO2 第一场 8.18
2018/08/19 DOTA
Python bsddb模块操作Berkeley DB数据库介绍
2015/04/08 Python
Python处理文本文件中控制字符的方法
2017/02/07 Python
matplotlib命令与格式之tick坐标轴日期格式(设置日期主副刻度)
2019/08/06 Python
python对象销毁实例(垃圾回收)
2020/01/16 Python
解决Jupyter NoteBook输出的图表太小看不清问题
2020/04/16 Python
J.Crew官网:美国知名休闲服装品牌
2017/05/19 全球购物
EJB timer的种类
2014/10/28 面试题
用Java语言将一个键盘输入的数字转化成中文输出
2013/01/25 面试题
数控专业毕业生求职信范文
2013/09/21 职场文书
料理师求职信
2014/01/30 职场文书
2014年综治宣传月活动总结
2014/04/28 职场文书
学习方法演讲稿
2014/05/10 职场文书
公务员群众路线专题民主生活会发言材料
2014/09/17 职场文书
logback 实现给变量指定默认值
2021/08/30 Java/Android
CentOS7 minimal 最小化安装网络设置过程
2022/12/24 Servers