自适应布局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实际应用:innerHTMl和确认提示的使用
Jun 22 Javascript
Javascript的并行运算实现代码
Nov 19 Javascript
Jquery自定义button按钮的几种方法
Jun 11 Javascript
JavaScript中的splice方法用法详解
Jul 20 Javascript
Three.js快速入门教程
Sep 09 Javascript
js中作用域的实例解析
Mar 16 Javascript
20行js代码实现的贪吃蛇小游戏
Jun 20 Javascript
JavaScript与Java正则表达式写法的区别介绍
Aug 15 Javascript
node.js调用C++函数的方法示例
Sep 21 Javascript
使用axios请求接口,几种content-type的区别详解
Oct 29 Javascript
ES6中Set和Map用法实例详解
Mar 02 Javascript
理解Proxy及使用Proxy实现vue数据双向绑定操作
Jul 18 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 检测和注销
2009/03/16 PHP
谈谈 PHP7新增功能
2015/12/16 PHP
详解WordPress开发中过滤属性以及Sql语句的函数使用
2015/12/25 PHP
PHP实现数组向任意位置插入,删除,替换数据操作示例
2019/04/05 PHP
学习ExtJS Column布局
2009/10/08 Javascript
jquery的$(document).ready()和onload的加载顺序
2010/05/26 Javascript
在多个页面使用同一个HTML片段的代码
2011/03/04 Javascript
jquery 跨域访问问题解决方法(笔记)
2011/06/08 Javascript
JS 控件事件小结
2012/10/31 Javascript
JavaScript表单通过正则表达式验证电话号码
2014/03/14 Javascript
angularJS 中$scope方法使用指南
2015/02/09 Javascript
jQuery实现数秒后自动提交form的方法
2015/03/05 Javascript
基于jquery实现人物头像跟随鼠标转动
2015/08/23 Javascript
如何用JavaScript实现动态修改CSS样式表
2016/05/20 Javascript
利用jQuery插件imgAreaSelect实现图片上传裁剪(放大缩小)
2016/12/02 Javascript
angular2 ng build部署后base文件路径问题详细解答
2017/07/15 Javascript
发布订阅模式在vue中的实际运用实例详解
2019/06/09 Javascript
JavaScript onclick事件使用方法详解
2020/05/15 Javascript
跟老齐学Python之数据类型总结
2014/09/24 Python
Python中的模块和包概念介绍
2015/04/13 Python
Python的Flask开发框架简单上手笔记
2015/11/16 Python
Python实现解析Bit Torrent种子文件内容的方法
2017/08/29 Python
用python实现百度翻译的示例代码
2018/03/09 Python
python2.7实现FTP文件下载功能
2018/04/15 Python
如何安装多版本python python2和python3共存以及pip共存
2018/09/18 Python
python中bs4.BeautifulSoup的基本用法
2019/07/27 Python
python实现美团订单推送到测试环境,提供便利操作示例
2019/08/09 Python
对CSS3选择器的研究(详解)
2016/09/16 HTML / CSS
家乐福巴西网上超市:Carrefour巴西
2016/10/31 全球购物
斯福泰克软件测试面试题
2015/02/16 面试题
教师党员思想汇报
2014/01/06 职场文书
大学校园生活自我鉴定
2014/01/13 职场文书
2014年政风行风自查自纠报告
2014/10/21 职场文书
如何用python插入独创性声明
2021/03/31 Python
Python中json.dumps()函数的使用解析
2021/05/17 Python
nginx中proxy_pass各种用法详解
2021/11/07 Servers