移动WEB中的像素与Viewport

设备像素(Device Pixel):

  显示屏的最小物理显示单位。手机设备的屏幕参数(例如1920x1080)就是指的设备像素。

设备密度(PPI/DPI):

  显示屏每英寸的长度里,所包含的设备像素的数量。

  ios里把PPI大于320的显示屏称之为Retina。android通过ldpi(120~160)、mdpi(160~240)、hdpi(240~320)、xhdpi(>320)来给显示屏分等级。

设备无关像素(Device Independent Pixel):

  用于设置界面显示的虚拟像素单位,设备无关像素可以比设备像素大或小。

  页面的CSS像素,以及PC显示器设置的分辨率像素,就是指的这个像素。

  通过页面的缩放,或设置显示器的分辨率,可以调整单个设备无关像素的大小。

设备像素比(DevicePixelRatio):

  显示屏容纳的设备像素和设备无关像素数量的比值。在浏览器里,这个值与页面的缩放有关。

  部分浏览器的支持通过window.devicePixelRatio的方式获取值。

Viewport:

  页面html元素的父容器,html设置宽度为100%时,与viewport的宽度相等。在PC浏览器上,viewport的宽度与浏览器可视区域的宽度一致,在手机浏览器上则不一定,大多数手机浏览器默认的viewport宽度是980px。

  在页面中,可以通过<meta name="viewport" content="width=device-width"/>的方式来设置viewport的宽度,width的值可以是device-width,或一个整数。

viewport的宽度单位是px,并且这里的px指的是设备无关像素(CSS像素)。因为不同机型和浏览器的默认缩放不一样,通过这些浏览器打开同一个未设置viewport的页面时,页面视觉上的宽度是不一样的。ios的默认缩放策略是,页面不出现滚动条,占满浏览器的可视区域,此时的设备像素比 = 显示屏的设备像素宽度(单位是设备像素px) / 默认viewport宽度(980px,单位是设备无关像素px)。android的默认缩放策略,则各不一样,有的跟ios一样,有的是根据target-densitydpi的默认值medium-dpi来计算。

  上面提到的width=device-width,那这个device-width的取值是多少呢?在不同的设备上,单个设备像素的大小不一样,这样的话,同一个页面在这些设备上的效果就会完全不一样。要想解决这个问题,就需要在不同的设备上显示网页时,所使用的CSS像素中,单个CSS像素的宽度是一样的 。早期的设备,例如第一个版本的iphone,3.5英寸大小,设备像素是320,并且设备像素与CSS像素相等。后来新设备的设备像素值越来越大,而屏幕大小没有增加太多,这样单个设备像素的宽度就更小了,单个CSS像素需要包含多个设备像素,才能保障单个CSS像素的大小和老版本的设备基本相等,这样每个设备就产生了自己的理想设备像素比。通过这个设备的设备像素宽度 / 这个理想的设备像素比,就得到了device-width的取值,在ios上是320,在android上,有320、360、384、400等不同的取值。

  在media query中device-width指的是设备像素,与这里的取值不一样。

时间: 2024-12-29 05:14:17

移动WEB中的像素与Viewport的相关文章

Viewport在开发手机Web中的应用

目前比较主流的移动设备系统包括 Android,IOS ,Symbian,BlackBerry 与Web OS.这些系统浏览器都是基于webkit核心,而webkit号称是一款全功能的移动浏览器,支持 HTML + CSS + JavaScript,但由于移动设备本身与PC的差异,导致我们开发的网页在移动设备上总是会存在一些不如人意的地方. Viewport 翻译为中文可以叫做"视区",大家都知道移动设备的屏幕一段都比PC小很多,webkit浏览器会将一个较大的"虚拟&quo

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

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

移动web开发之像素和DPR

移动web开发之像素和DPR 目录 [1]定义[2]分类[3]缩放[4]DPR[5]API 前面的话 像素在web开发中几乎天天用到,但到底什么是像素,移动端和桌面端的像素有区别吗,缩放对像素有影响吗,视网膜屏幕和像素有什么关系?关于这些问题,可能就说不清楚了.本文将介绍关于像素的相关知识 定义 像素,又称画素,是图像显示的基本单位,译自英文“pixel”,pix是英语单词picture的常用简写,加上英语单词“元素”element,就得到pixel,故“像素”表示“图像元素”之意,有时亦被称为

Web中的图标

随着时代的变迁与技术的不断的更新,在当今这个时代,Web中的图标(Icons)不再仅仅是局限于<img>.除了<img>直接调用Icons文件之外,还有Sprites(俗称雪碧图).Icon Font(字体图标).SVG Icon等等.今天我们就来一起探讨一下这些方法在Web中实现Icon的利弊. 思考变革 设计师不管分辨率(Resolution independent)和设备平台,其追求像素完美(Pixel Perfection).体验一致性:而前端工程师们更为关心的是页面的可访

&quot;命名空间&quot;system.web&quot;中不存在类型或命名空间名称security&quot;错误解决方法

using System; using System.Collections.Generic; using System.Text; using System.Web; namespace 求md5 { class Program { static void Main(string[] args) { string str = GetMd5("xuwei"); Console.WriteLine(str); } public static string GetMd5(string st

CKEditor4 在java web中的应用说明(详细可行)

按照官方的说明书就可,这里主要注意一点!! 就是<script src="../ckeditor.js"></script>中js文件的路径问题,我的ckeditor文件夹是在WebContent文件夹下,jsp文件是同一层目录的,所以最后的代码应该是 <script type="text/javascript"src="./ckeditor/ckeditor.js"></script> 注意斜杆号

优化Web中的性能

优化Web中的性能 简介 web的优化就是一场阻止http请求最终访问到数据库的战争. 优化的方式就是加缓存,在各个节点加缓存. web请求的流程及节点 熟悉流程及节点,才能定位性能的问题.而且优化的顺序一般也是按请求的流程逐一优化.这里的流程只是做个概要,并不代表全面. 整个流程是以最快的方式让用户看到结果 定位的方法 思路是:把看不见的http,具体化.可视化. 定位是优化的前提.没有准确的定位就无法有效的解决问题. 浏览器 看整个请求的时间 看整个页面加载的时间 看页面加载的数据大小 看页

CSS3 生成内容(在Web中插入内容)

在Web中插入内容,在CSS2.1时代依靠的是JavaScript来实现.但进入CSS3进代之后我们可以通 过CSS3的伪类“:before”,“:after”和CSS3的伪元素“::before”.“::after”来实现,其关键是依靠CSS3中的 “content”属性来实现.不过这个属性对于img和input元素不起作用. content配合CSS的伪类或者伪元素,一般可以做以下四件事情: 功能 功能说明 none 不生成任何内容 attr 插入标签属性值 url 使用指定的绝对或相对地址

编译器错误消息: CS0234: 命名空间“System.Web”中不存在类型或命名空间名称“Optimization”(是否缺少程序集引用?)

署名:冯兵 今天我遇上一个问题:编译器错误消息: CS0234: 命名空间“System.Web”中不存在类型或命名空间名称“Optimization”(是否缺少程序集引用?). 让我烦恼了很长一段时间,怎么调试也不知道错在哪,后来问师兄才知道错在哪. 起因:修改一个功能模块的代码,怕影响到其他功能模块的功能实现,所以我新建了一个区域,把要修改模块的相关代码都复制过去,把带波浪线的提示都修改完后,   运行就出现这个错误. 解决方案:找到复制前和复制后的视图文件夹下的文件名为“Web.confi