移动前端中viewport(视口)

移动前端中常说的 viewport (视口)就是浏览器显示页面内容的屏幕区域。其中涉及几个重要概念是 dpi ( device-independent pixel 设备逻辑像素 )和 CSS 像素之间的关系。

(1) layout viewport(布局视口)

一般移动设备的浏览器都默认设置了一个viewport 元标签,定义一个虚拟的layout viewport(布局视口),用于解决早期的页面在手机上显示的问题。iOS, Android基本都将这个视口分辨率设置为 980px,所以pc上的网页基本能在手机上呈现,只不过元素看上去很小,一般默认可以通过手动缩放网页。

(2) visual viewport(视觉视口)和物理像素

visual viewport(视觉视口)设备物理屏幕的可视区域,屏幕显示器的物理像素,同样尺寸的屏幕,像素密度大的设备,硬件像素会更多。例如iPhone的物理像素:

  • iPhone5 :640 * 1136
  • iPhone6:750 * 1334
  • iPhone6 Plus:1242 * 2208

(3) ideal viewport(理想视口)和dip(设备逻辑像素)

ideal viewport(理想视口)通常是我们说的屏幕分辨率。

dpi (设备逻辑像素)跟设备的硬件像素无关的。一个 dpi 在任意像素密度的设备屏幕上都占据相同的空间。

比如MacBook Pro的 Retina (视网膜)屏显示器硬件像素是:2880 * 1800。当你设置屏幕分辨率为 1920 * 1200 的时候,ideal viewport(理想视口)的宽度值是1920像素, 那么 dpi 的宽度值就是1920。设备像素比是1.5(2880/1920)。设备的逻辑像素宽度和物理像素宽度(像素分辨率)的关系满足如下公式:

逻辑像素宽度*倍率 = 物理像素宽度

而移动端手机屏幕通常不可以设置分辨率,一般都是设备厂家默认设置的固定值,换句话说 dpi 的值就是 ideal viewport(理想视口)(也就是分辨率)的值,比如,iPhone的屏幕分辨率:

  1. iPhone5 :分辨率 320 * 568,物理像素 640 * 1136,@2x
  2. iPhone6:分辨率 375 * 667,物理像素 750 * 1334,@2x
  3. iPhone6 Plus :分辨率 414 *  736,物理像素1242 * 2208,@3x,(注意,实际显示图像等比降低至1080×1920,具体原因查看:http://www.css88.com/archives/5972

(4) CSS像素

CSS像素(px)用于页面布局的单位。样式的像素尺寸(例如 width: 100px)是以CSS像素为单位指定的。CSS像素与 dpi 的比例即为网页的缩放比例,如果网页没有缩放,那么一个CSS像素就对应一个 dpi(设备逻辑像素) 。

(5) 使用viewport元标签控制布局

首先看一下viewport元标签极其属性:

<meta id="viewport" name="viewport" content="width=device-width; initial-scale=1.0;

属性名 取值 描述
width 正整数 或 device-width 定义视口的宽度,单位为像素
height 正整数 或 device-height 定义视口的高度,单位为像素,一般不用
initial-scale [0.0-10.0] 定义初始缩放值
minimum-scale [0.0-10.0] 定义缩小最小比例,它必须小于或等于maximum-scale设置
maximum-scale [0.0-10.0] 定义放大最大比例,它必须大于或等于minimum-scale设置
user-scalable yes/no 定义是否允许用户手动缩放页面,默认值yes

width

width属性被用来控制layout viewport(布局视口)的宽度,layout viewport(布局视口)宽度默认值是设备厂家指定的。iOS, Android基本都将这个视口分辨率设置为 980px。我们可以 width=320 这样设为确切的像素数,也可以设为device-width这一特殊值,一般为了自适应布局,普遍的做法是将width设置为device-width,例如:

  1. <meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1">

width=device-width 也就是将layout viewport(布局视口)的宽度设置 ideal viewport(理想视口)的宽度。网页缩放比例为100%时,一个CSS像素就对应一个 dpi(设备逻辑像素),而layout viewport(布局视口)的宽度,ideal viewport(理想视口)的宽度(通常说的分辨率),dpi 的宽度值是相等的。

height

与width类似,但实际上却不常用。

initial-scale

initial-scale用于指定页面的初始缩放比例:

  1. <meta name="viewport" content="initial-scale=1.5" />

initial-scale=1 表示将layout viewport(布局视口)的宽度设置为 ideal viewport(理想视口)的宽度,initial-scale=1.5 表示将layout viewport(布局视口)的宽度设置为 ideal viewport(理想视口)的宽度的1.5倍。

maximum-scale

maximum-scale用于指定用户能够放大的最大比例,例如

  1. <meta name="viewport" content="initial-scale=1,maximum-scale=3" />

假设页面的默认缩放值initial-scale是1,那么用户最终能够将页面放大到这个初始页面大小的3倍。

minimum-scale

类似maximum-scale的描述,不过minimum-scale是用来指定页面缩小比例的。通常情况下,不会定义该属性的值,页面太小将难以阅读。

user-scalable

user-scalable来控制用户是否可以通过手势对页面进行缩放。该属性的默认值为yes,可被缩放,你也可以将该值设置为no,表示不允许用户缩放网页。例如:

  1. <meta name="viewport" content="user-scalable=no" />
时间: 2024-10-13 02:48:34

移动前端中viewport(视口)的相关文章

浅谈移动端中的视口(viewport)

在 PC 端,视口指的是浏览器的可视区域,其宽度和浏览器窗口的宽度保持一致.在 CSS 标准文档中,视口也被称为初始包含块,它是所有 CSS 百分比宽度推算的根源,给 CSS 布局限制了一个最大宽度. 而移动端则较为复杂,它涉及到三个视口:布局视口(Layout Viewport).视觉视口(Visual Viewport)和理想视口(Ideal Viewport). 本文主要讨论移动端中的视口. 1. 基本概念 1.1 两种像素 像素是计算机屏幕中显示特定颜色的最小区域.屏幕中的像素越多,同一

Meta viewport (视口元信息标签)

前几天在研究移动版开发时,意外查阅到了PPK大神的关于viewport(视口)的三篇研究文档,但无奈全是英文,只好硬着头皮看下去,并顺便试着翻译一下,以备日后回顾. 本人水平有限,如翻译错误,欢迎指正 原文地址:http://www.quirksmode.org/mobile/metaviewport/#t10 读前须知:PPK写这篇文章的时候,IPhone还没有生产出4S之后的产品.所以,这篇文章中提到的IPhone,都是指IPhone4S及之前的手机. TOP This page conta

Lync Server 2013 部署 _ 前端中添加第二台Server&DNS轮询实现高可用

这一章介绍如何向Lync Server前端池中添加Lync服务器 Lync Server前端高可用实现方法三种,其实微软官网的方法只列出了两种,并且网络上的文章很多都强调了无法使用Windows自带的网络负载平衡进行高可用配置 DNS轮询,可分摊Lync Server的网络访问流量,这章节会介绍DNS轮询实现前端高可用 硬件负载平衡 Windows组件网络负载平衡,这个功能官网没有指出可以使用,并且网络上很多文章都说网络负载平衡这个组件不支持Lync Server前端高可用,我们将会通过Wind

如何将CAD中的视口更改为两个水平视口?

如何将CAD中的视口更改为两个水平视口?在编辑CAD图纸的时候建筑工程师们都是借助CAD编辑器来进行绘制的,但是编辑完都需要在次进行查看,但是为了查看方便我们需要把编辑器的视口更改为两个视口,为了更加的方便对照两张CAD图纸的区别,那如何将CAD中的视口更改为两个水平视口?具体要怎么来进行操作?下面就一起来看看具体操作步骤吧? 第一步:首先打开常用的电脑,移动鼠标任意的打开一个浏览器,在浏览器的搜索框中搜索迅捷CAD编辑器,然后进入官网,点击下载安装最新版本的CAD编辑器.安装完成之后,启动该软

ViewPort视口

一个典型的针对移动端优化的页面会包含类似这样的内容: <meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=no"> 其中的name="viewport"中的viewport我们称作视口 常说的viewport-视口就是显示器显示页面内容的屏幕区域 1.layout viewport(

web前端中的Touch事件实例

例1.单个手指touch <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <meta content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=0;" name="viewport"> &

移动前端之viewport

在移动设备上进行网页的重构或开发,首先得搞明白的就是移动设备上的viewport了,只有明白了viewport的概念以及弄清楚了跟viewport有关的meta标签的使用,才能更好地让我们的网页适配或响应各种不同分辨率的移动设备. 一.viewport的概念 通俗的讲,移动设备上的viewport就是设备的屏幕上能用来显示我们的网页的那一块区域,在具体一点,就是浏览器上(也可能是一个app中的webview)用来显示网页的那部分区域,但viewport又不局限于浏览器可视区域的大小,它可能比浏览

了解前端中的SPA

单页Web应用(single page web application,SPA),就是只有一张Web页面的应用,是加载单个HTML 页面并在用户与应用程序交互时动态更新该页面的Web应用程序. 单页Web应用 单页Web应用(single page web application,SPA),就是只有一张Web页面的应用.单页应用程序 (SPA) 是加载单个HTML 页面并在用户与应用程序交互时动态更新该页面的Web应用程序.[1]  浏览器一开始会加载必需的HTML.CSS和JavaScript

html5中viewport与meta详解

网上解释手机浏览器是把页面放在一个虚拟的"窗口"(viewport)中,通常这个虚拟的"窗口"(viewport)比屏幕宽,这样就不用把每个网页挤到很小的窗口中(这样会破坏没有针对手机浏览器优化的网页的布局),用户可以通过平移和缩放来看网页的不同部分.移动版的 Safari 浏览器最新引进了 viewport 这个 meta tag,让网页开发者来控制 viewport 的大小和缩放,其他手机浏览器也基本支持. <meta name="viewpor