自适应布局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鼠标及对象坐标控制属性详细解析
Dec 14 Javascript
Js实现动态添加删除Table行示例
Apr 14 Javascript
完美兼容IE,chrome,ff的设为首页、加入收藏及保存到桌面js代码
Dec 17 Javascript
JS实现网站菜单拖拽移位效果的方法
Sep 24 Javascript
js clearInterval()方法的定义和用法
Nov 11 Javascript
在微信、支付宝、百度钱包实现点击返回按钮关闭当前页面和窗口的方法
Aug 05 Javascript
js绘制购物车抛物线动画
Nov 18 Javascript
jquery编写日期选择器
Mar 16 Javascript
Angular2使用Augury来调试Angular2程序
May 21 Javascript
详解原生js实现offset方法
Jun 15 Javascript
Promise扫盲贴
Jun 24 Javascript
vue3.0实现插件封装
Dec 14 Vue.js
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笔记之常用文件操作
2010/10/12 PHP
解析关于java,php以及html的所有文件编码与乱码的处理方法汇总
2013/06/24 PHP
PHP学习笔记(二):变量详解
2015/04/17 PHP
PHP之正则表达式捕获组与非捕获组(详解)
2015/07/29 PHP
PHP实现图片不变型裁剪及图片按比例裁剪的方法
2016/01/14 PHP
thinkPHP中配置的读取与C方法详解
2016/12/05 PHP
PHP时间函数使用详解
2019/03/21 PHP
laravel 5.3 单用户登录简单实现方法
2019/10/14 PHP
PHP 8新特性简介
2020/08/18 PHP
laravel中Redis队列监听中断的分析
2020/09/14 PHP
激活 ActiveX 控件
2006/10/09 Javascript
asp批量修改记录的代码
2008/06/25 Javascript
jquery trim() 功能源代码
2011/02/14 Javascript
控制文字内容的显示与隐藏示例
2014/06/11 Javascript
jQuery中index()方法用法实例
2014/12/27 Javascript
jquery实现实时改变网页字体大小、字体背景色和颜色的方法
2015/08/05 Javascript
Javascript实现鼠标框选操作  不是点击选取
2016/04/14 Javascript
JS动态给对象添加事件的简单方法
2016/07/19 Javascript
移动端js图片查看器
2016/11/17 Javascript
10个最优秀的Node.js MVC框架
2017/08/24 Javascript
Vue进度条progressbar组件功能
2018/04/17 Javascript
Nuxt.js SSR与权限验证的实现
2018/11/21 Javascript
解决Layui数据表格显示无数据提示的问题
2019/11/14 Javascript
[56:14]Fnatic vs OG 2018国际邀请赛小组赛BO2 第二场 8.18
2018/08/19 DOTA
剖析Django中模版标签的解析与参数传递
2015/07/21 Python
解析Python中的eval()、exec()及其相关函数
2017/12/20 Python
python实现树形打印目录结构
2018/03/29 Python
Tensorflow卷积实现原理+手写python代码实现卷积教程
2020/05/22 Python
keras 简单 lstm实例(基于one-hot编码)
2020/07/02 Python
python Gabor滤波器讲解
2020/10/26 Python
德国街头和运动文化高品质商店:BSTN Store
2017/08/26 全球购物
在线学习西班牙语、法语或其他语言:Babbel.com
2018/02/07 全球购物
意大利值得信赖的在线超级药房:PillolaStore
2020/02/05 全球购物
2015年教师国培感言
2015/08/01 职场文书
服装店员工管理制度
2015/08/07 职场文书
vue3使用vue-router的完整步骤记录
2021/06/20 Vue.js