自适应布局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 valueOf 使用方法
Dec 28 Javascript
js动态拼接正则表达式的两种方法
Mar 04 Javascript
浅谈javascript中new操作符的原理
Jun 07 Javascript
全面接触神奇的Bootstrap导航条实战篇
Aug 01 Javascript
使用Ajax与服务器(JSON)通信实例
Nov 04 Javascript
推荐三款日期选择插件(My97DatePicker、jquery.datepicker、Mobiscroll)
Apr 21 jQuery
Vue利用canvas实现移动端手写板的方法
May 03 Javascript
微信小程序实现滴滴导航tab切换效果
Jul 24 Javascript
vue封装一个简单的div框选时间的组件的方法
Jan 06 Javascript
Easyui 关闭jquery-easui tab标签页前触发事件的解决方法
Apr 28 jQuery
JS事件循环机制event loop宏任务微任务原理解析
Aug 04 Javascript
基于angular实现树形二级表格
Oct 16 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 正则 过滤html 的超链接
2009/06/02 PHP
PHP获取文件夹大小函数用法实例
2015/07/01 PHP
PHP操作Redis常用技巧总结
2018/04/24 PHP
用JSON做数据传输格式中的一些问题总结
2011/12/21 Javascript
js取float型小数点后两位数的方法
2014/01/18 Javascript
JS实现div居中示例
2014/04/17 Javascript
js怎么判断flash swf文件是否加载完毕
2014/08/14 Javascript
JavaScript字符串对象的concat方法实例(用于连接两个或多个字符串)
2014/10/16 Javascript
理解jQuery stop()方法
2014/11/21 Javascript
简单的分页代码js实现
2016/05/17 Javascript
AngularJS入门教程之REST和定制服务详解
2016/08/19 Javascript
Ajax高级笔记 JavaScript高级程序设计笔记
2017/06/22 Javascript
React Navigation 使用中遇到的问题小结
2018/05/08 Javascript
详解如何使用koa实现socket.io官网的例子
2018/11/04 Javascript
vue element动态渲染、移除表单并添加验证的实现
2019/01/16 Javascript
小程序实现多列选择器
2019/02/15 Javascript
微信小程序人脸识别功能代码实例
2019/05/07 Javascript
jQuery 判断元素是否存在然后按需加载内容的实现代码
2020/01/16 jQuery
javascript的hashCode函数实现代码小结
2020/08/11 Javascript
[47:45]Liquid vs OG 2018国际邀请赛小组赛BO2 第二场 8.16
2018/08/17 DOTA
Python中的yield浅析
2014/06/16 Python
常见的在Python中实现单例模式的三种方法
2015/04/08 Python
如何通过python画loss曲线的方法
2019/06/26 Python
Pandas数据离散化原理及实例解析
2019/11/16 Python
python错误调试及单元文档测试过程解析
2019/12/19 Python
基于python及pytorch中乘法的使用详解
2019/12/27 Python
python 解决mysql where in 对列表(list,,array)问题
2020/06/06 Python
Python Scrapy多页数据爬取实现过程解析
2020/06/12 Python
马来西亚在线购物市场:PGMall.my
2019/10/13 全球购物
大专学生推荐信范文
2013/11/19 职场文书
服装公司总经理岗位职责
2013/11/30 职场文书
大学生怎样写好自荐信
2014/02/25 职场文书
党员公开承诺事项
2014/03/25 职场文书
2015年社区中秋节活动总结
2015/03/23 职场文书
微软PC Health Check电脑健康状况检查应用下载(Win11配置检测工具)
2021/06/26 数码科技
python全面解析接口返回数据
2022/02/12 Python