自适应布局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 相关文章推荐
jquery基础教程之数组使用详解
Mar 10 Javascript
javascript判断office版本示例
Apr 11 Javascript
轻松学习jQuery插件EasyUI EasyUI实现拖动基本操作
Nov 30 Javascript
HTML页面,测试JS对C函数的调用简单实例
Aug 09 Javascript
js中利用cookie实现记住密码功能
Aug 20 Javascript
微信小程序 本地数据读取实例
Apr 27 Javascript
史上最全JavaScript常用的简写技巧(推荐)
Aug 17 Javascript
js移动端图片压缩上传功能
Aug 18 Javascript
JavaScript获取移动设备型号的实现代码(JS获取手机型号和系统)
Mar 10 Javascript
手挽手带你学React之React-router4.x的使用
Feb 14 Javascript
vue使用el-upload上传文件及Feign服务间传递文件的方法
Mar 15 Javascript
Vue实现商品详情页的评价列表功能
Sep 04 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 url地址栏传中文乱码解决方法集合
2010/06/25 PHP
PHP中for与foreach的区别分析
2011/03/09 PHP
解析CI即CodeIgniter框架在Nginx下的重写规则
2013/06/03 PHP
php实现根据词频生成tag云的方法
2015/04/17 PHP
Discuz! 6.1_jQuery兼容问题
2008/09/23 Javascript
实现超用户体验 table排序javascript实现代码
2009/06/22 Javascript
jQuery入门问答 整理的几个常见的初学者问题
2010/02/22 Javascript
js对象与打印对象分析比较
2013/04/23 Javascript
node.js中的http.createClient方法使用说明
2014/12/15 Javascript
js实现下拉框选择要显示图片的方法
2015/02/16 Javascript
jQuery实现元素拖拽并cookie保存顺序的方法
2016/02/20 Javascript
JS本地刷新返回上一页代码
2016/07/25 Javascript
Seajs是什么及sea.js 由来,特点以及优势
2016/10/13 Javascript
JS常用加密编码与算法实例总结
2016/12/22 Javascript
Bootstrap Table使用整理(三)
2017/06/09 Javascript
微信小程序使用request网络请求操作实例
2017/12/15 Javascript
使用vue-router为每个路由配置各自的title
2018/07/30 Javascript
jQuery zTree树插件的使用教程
2019/08/16 jQuery
webpack3.0升级4.0的方法步骤
2020/04/02 Javascript
javascript实现点击按钮切换轮播图功能
2020/09/23 Javascript
在vue中使用inheritAttrs实现组件的扩展性介绍
2020/12/07 Vue.js
django项目运行因中文而乱码报错的几种情况解决
2017/11/07 Python
在python中将字符串转为json对象并取值的方法
2018/12/31 Python
python统计字符串中字母出现次数代码实例
2020/03/02 Python
利用Python裁切tiff图像且读取tiff,shp文件的实例
2020/03/10 Python
使用Python+selenium实现第一个自动化测试脚本
2020/03/17 Python
Tensorflow中批量读取数据的案列分析及TFRecord文件的打包与读取
2020/06/30 Python
给Django Admin添加验证码和多次登录尝试限制的实现
2020/07/26 Python
Matplotlib.pyplot 三维绘图的实现示例
2020/07/28 Python
Urban Outfitters美国官网:美国生活方式品牌
2016/08/26 全球购物
卡骆驰新加坡官网:Crocs新加坡
2018/06/12 全球购物
免税水晶:Duty Free Crystal
2019/05/13 全球购物
生物技术毕业生自荐信
2013/10/23 职场文书
汉语言文学毕业生自荐信范文
2014/03/24 职场文书
教你用python实现一个无界面的小型图书管理系统
2021/05/21 Python
用JS实现飞机大战小游戏
2021/06/09 Javascript