自适应布局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 相关文章推荐
js停止输出代码
Jul 20 Javascript
JavaScript设计模式之单件模式介绍
Dec 28 Javascript
IE6-IE9使用JSON、table.innerHTML所引发的问题
Dec 22 Javascript
基于canvas实现的绚丽圆圈效果完整实例
Jan 26 Javascript
JS实现图片的不间断连续滚动的简单实例
Jun 03 Javascript
jQuery查看选中对象HTML代码的方法
Jun 17 Javascript
JavaScript 最佳实践:帮你提升代码质量
Dec 03 Javascript
AngularJS使用ui-route实现多层嵌套路由的示例
Jan 10 Javascript
vuex 的简单使用
Mar 22 Javascript
vue自定义全局共用函数详解
Sep 18 Javascript
vue-cli V3.0版本的使用详解
Oct 24 Javascript
微信小程序传值以及获取值方法的详解
Apr 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中session_unset与session_destroy的区别分析
2011/06/16 PHP
php curl获取网页内容(IPV6下超时)的解决办法
2013/07/16 PHP
php开发时容易忘记的一些技术细节
2016/02/03 PHP
javascript下arguments,caller,callee,call,apply示例及理解
2009/12/24 Javascript
JS HTML5 音乐天气播放器(Ajax获取天气信息)
2013/05/26 Javascript
js完美实现@提到好友特效(兼容各大浏览器)
2015/03/16 Javascript
JavaScript中的return语句简单介绍
2015/12/07 Javascript
JavaScript Math.round() 方法
2015/12/18 Javascript
Bootstrap树形控件使用方法详解
2016/01/27 Javascript
详解js中==与===的区别
2017/01/08 Javascript
JavaScript 数据类型详解
2017/03/13 Javascript
ES6中参数的默认值语法介绍
2017/05/03 Javascript
详解layui中的树形关于取值传值问题
2018/01/16 Javascript
关于vue-router的那些事儿
2018/05/23 Javascript
Nuxt.js实现一个SSR的前端博客的示例代码
2019/09/06 Javascript
layer页面跳转,获取html子节点元素的值方法
2019/09/27 Javascript
js 获取本周、上周、本月、上月、本季度、上季度的开始结束日期
2020/02/01 Javascript
Vue.js桌面端自定义滚动条组件之美化滚动条VScroll
2020/12/01 Vue.js
[01:25]DOTA2超级联赛专访iG 将调整状态找回自己
2013/06/05 DOTA
Python中的包和模块实例
2014/11/22 Python
tensorflow 使用flags定义命令行参数的方法
2018/04/23 Python
Python Django 命名空间模式的实现
2019/08/09 Python
Keras 加载已经训练好的模型进行预测操作
2020/06/17 Python
Python常用base64 md5 aes des crc32加密解密方法汇总
2020/11/06 Python
python常量折叠基础知识点讲解
2021/02/28 Python
全球领先的美容用品专卖店:Beauty Plus Salon
2018/09/04 全球购物
中国制造网:Made-in-China.com
2019/10/25 全球购物
奖学金自我鉴定范文
2013/10/03 职场文书
路政管理毕业自荐书范文
2014/02/10 职场文书
大学生就业自我推荐信
2014/05/10 职场文书
小学生美德少年事迹材料
2014/08/24 职场文书
个人学习群众路线心得体会
2014/11/05 职场文书
团代会邀请函
2015/02/02 职场文书
出生证明格式
2015/06/15 职场文书
MongoDB数据库之添删改查
2022/04/26 MongoDB
使用 Docker Compose 构建复杂的多容器App
2022/04/30 Servers