移动WEB开发之viewport
问题:
在codepen上写了一个响应式页面,调试的时候没有问题。结果放到网站上,在手机上打开之后竟然和在电脑中的布局是一样的。

查阅资料之后知道响应式布局应该有这样一句话:<meta name="viewport" content="width=device-width,initial-scale=1.0, maximum-scale=1.0, user-scalable=0">
这是怎么回事呢?为什么写了width=device-width之后就可以正确的显示为图二那样呢?
Viewport诞生
这件事情要从viewport出现之前开始讲起。
在移动设备还不普及的时候,网页设计根本不考虑手机端的感受,如果用手机设备(屏幕宽度为320px)打开一个定宽(width:980px)的网页,就会出现滚动条,要滑动才能看完整个页面:

这并不是最糟糕的。最糟糕的是,如果是流式布局。也就是一个盒子的宽度是百分比,比如说20%,那么在一个屏幕宽度为320px的手机上打开之后,这个盒子的实际宽度就会是320px*20%=64px。而它里面的以px为单位的文字,依然是那么大。这就会出现一行中只能容下那么几个字的情况,阅读体验是非常差的。

为了解决这个问题,Apple提出了viewport这个概念,他就相当于建立在设备屏幕上的一个单独的视口,用于展示网页内容,让CSS与设备宽度完全脱离关系。也就是说,在CSS中的百分比是由它的宽度来决定的,而不是由设备屏幕的物理宽度。Apple给它一个默认宽度,980px。
这也就是为什么我的响应式网页在手机中打开后和在电脑上的布局相同了,因为我是在viewport中打开它,而viewport的宽度是980px,并没有满足breakpoint,所以不会改变布局。
随着移动端的普及,这个问题就越来越棘手,那些专门为手机设计的网页(宽度为320px),在手机上打开之后却是这样的:

所以需要提供一些属性,来设置viewport的宽度或高度。
<meda name="viewport" width="device-width">
这样,这个网页就可以正确的显示了:

参考:
移动WEB开发之viewport的更多相关文章
- #笔记# 移动前端开发之viewport
一般移动设备的浏览器都默认设置了一个 viewport ,并初始定义一个虚拟的layout viewport(布局视口),用于解决早期的页面在手机上显示的问题.下面我们来认识几个与 viewport ...
- Vim下的Web开发之html,CSS,javascript插件
Vim下的Web开发之html,CSS,javascript插件 HTML 下载HTML.zip 解压HTML.zip,然后将里面的所有文件copy到C:\Program Files\Vim\vi ...
- 移动前端开发之viewport,devicePixelRatio的深入理解
移动前端开发之viewport的深入理解 在移动设备上进行网页的重构或开发,首先得搞明白的就是移动设备上的viewport了,只有明白了viewport的概念以及弄清楚了跟viewport有关的met ...
- Web开发之Tomcat&Servlet
<!doctype html>01 - JavaEE - Tomcat&Servlet figure:first-child { margin-top: -20px; } #wri ...
- 移动web开发之rem适配布局
移动web开发之rem适配布局 方案: 页面布局文字能否随着屏幕大小变化而变化 流式布局和flex布局主要针对于宽度布局,那高度如何布局? 怎样让屏幕发生变化的时候元素高度和宽度等比例缩放? 1. r ...
- html5开发之viewport使用
随着高端手机(Andriod,Iphone,Ipod,WinPhone等)的盛行,移动互联应用开发也越来越受到人们的重视,用html5开发移动应用是最好的选择.然而,每一款手机有不同的分辨率,不同屏幕 ...
- (转)html5开发之viewport使用
原文:http://www.php100.com/html/webkaifa/HTML5/2012/0831/10979.html 随着高端手机(Andriod,Iphone,Ipod,WinPhon ...
- 深入理解移动web开发之PPI,Pixel,DevicePixelRatio(转)
如果你是一个开始接触移动Web开发的前端工程师,那么你或许也遇到了和我曾经遇到的过问题:有太多新的概念需要掌握,太多相似的概念需要区分.没关系,我将用两篇文章的篇幅来解决这些问题.上篇文章关于解释和区 ...
- .NET Web开发之.NET MVC框架
摘要:MVC是一种架构设计模式,该模式主要应用于图形化用户界面(GUI)应用程序.那么什么是MVC?MVC由三部分组成:Model(模型).View(视图)及Controller(控制器). MVC概 ...
随机推荐
- 几个比较”有意思“的JS脚本
1.获取内网和公网真实IP地址(引用地址) <!DOCTYPE html> <html> <head> <meta http-equiv="Cont ...
- Coroutine in Java - Quasar Fiber实现--转载
转自 https://segmentfault.com/a/1190000006079389?from=groupmessage&isappinstalled=0 简介 说到协程(Corout ...
- $ORACLE_HOME变量值末尾多“/”惹的祸
之前一直误以为$ORACLE_HOME变量的路径中末尾多写一个"/"不会有影响. 今天做实验时碰到一个情景,发现并不是这样. 环境:OEL 5.7 + Oracle 10.2.0. ...
- C++随笔:.NET CoreCLR之corleCLR核心探索之coreconsole(2)
这篇文章是上篇的续集,本文将会继续介绍coreconsole.cpp里面的逻辑.也许大家会看一些CLR的书,我承认我没有看过,因为我觉得一个人,他再NB,那也是他自己的眼光,而且说句难听的,CLR也不 ...
- JavaScript学习笔记(四)——jQuery插件开发与发布
jQuery插件就是以jQuery库为基础衍生出来的库,jQuery插件的好处是封装功能,提高了代码的复用性,加快了开发速度,现在网络上开源的jQuery插件非常多,随着版本的不停迭代越来越稳定好用, ...
- 新技术≠颠覆:CIO 要有战略耐心
新技术≠颠覆:CIO 要有战略耐心 大数据,云时代,互联网思维, 物联网--最近一两年,这些字眼一次次地出现在各种大大小小的CIO会议上和他们的私下交流圈子里,作为对新技术最敏感的人群,一方面他们迫切 ...
- Log4Net应用问题
问题 一.日志存储方式 1.txt 2.SQLServer数据库 3.log文件 二.项目类型不同 1winFrom 2webFrom 3MVC 4WPF 5控制台 三.切分依据不同 1.空间大小 2 ...
- Javascript之函数模型
分析: 对于js自定义函数,函数体的内容大致可抽象为:变量(局部变量,由var关键字定义,全局变量)和函数(一般函数,匿名函数,闭包函数). function SelfDefineFunc() { v ...
- 关于JavaScript中的delete操作
关于JavaScript中的delete操作 看到一道题,是这样的: (function(x){ delete x; return x; })(1); 1 null undefined Error 我 ...
- ceph架构剖析
unitedstack有云 :https://www.ustack.com/blog/ceph_infra/