在出现iphone4之前的相当长的时间内,网站开发人员和设计人员从来没有为像素苦恼过。那时候,设计人员打开photoshop,选择 “实际像素”后,看到的图片大小就是和最后真实的网站效果1:1的;对于开发人员也是如此,在css或者js里面写上1px,那么实际就是1px,在屏幕 上就是以一个硬件的像素点表示。
也不知道乔布斯是不是第一个在广泛使用的设备上使得“浏览器上声明的屏幕像素”和“屏幕硬件的实际像素”不一致的,对于iphone4,我们都知道它的硬件像素是640*960,然而我们在浏览器里面得到的声明像素确是320*480。
// iphone4、4s的safari中: alert(window.screen.width) // 320 alert(window.screen.height) // 480 alert(window.screen.availWidth) // 320 alert(window.screen.availHeight) // 460
首先需要为了便于描述,我们设:
硬件像素:硬件实际的像素(分辨率),如iphone4就是640*960
参照像素:编写网页前端代码时,定义的密度,它是参照浏览器声明的像素(分辨率)的,如iphone4就是320*480
假设本例中所述网页的head中控制viewpoint的meta中有下列属性:
<meta name="viewport" content="initial-scale=1.0,width=device-width" />
即显示宽度定位设备宽度(设备参照像素的宽度)
对于编写代码和用css构成的各种展现,开发者按照参照像素即可,需要注意和讨论的是使用的图片
举个简单的例子,如果需要在iphone4上一个参照像素为100*100的div充满一张背景图,需要使用一张200*200的图,然后这样设置:
{ width:100px; height:100px; background-image:url(200_200pxImg.png); background-size:100px 100px; }
好了,“硬件像素/参照像素=2”的设备上的图片显示很清晰,用户体验提高了。
但是不要忘记了一点,对于“硬件像素/参照像素<2”的设备,你不需要给那么大分辨率的图,给了它也显示不了那么精细和清晰。
目前来看,设备主要有三种硬件像素和参照像素的比值。对于100*100参照像素的div,它能最清晰且不浪费和缩放任何像素所需的背景图大小如下表所示:
比值 |
常见设备 |
最清晰且不浪费和缩放任何像素所需的背景图大小 |
1 |
大多数传统的设备,如大多数PC、3gs及以前版本的iphone |
100*100 |
1.5 |
相当一部分安卓设备 |
150*150 |
2 |
4及以后版本的iphone、3及以后版本的ipad、retina的macbook、比较高级的安卓系统的设备 |
200*200 |
于是,对于不同的设备,给予表中对应的背景图大小的图片是最理想的。
有如下方法来实现它:
- 使用css的media属性
<link href="d_2.css" rel="stylesheet" media="screen and (-webkit-device-pixel-ratio: 2)" /> <link href="d_1.5.css" rel="stylesheet" media="screen and (-webkit-device-pixel-ratio: 1.5)" /> <link href="d_1.css" rel="stylesheet" media="screen and (-webkit-device-pixel-ratio: 1)" />
或者在一个css文件中:
#header { /* 比值为1的css代码 */ } @media screen and (-webkit-device-pixel-ratio: 1.5) { /* 比值为1.5的css代码 */ } @media screen and (-webkit-device-pixel-ratio: 2) { /* 比值为2的css代码 */ }
- 使用javascript判断的方法:
alert(winodw.devicePixelRatio)
- 使用css4的image-set
在这个事情上,你如果想做得激进一些,只为支持这一css4属性的用户提供高清的图片,这一个激进方案的可行性假设基于“想要高清图片效果的用户,对用户体验比较在意,会跟随“时代的步伐”升级他的操作系统和浏览器”background-image: url(100_100pxImg.png); background-image: -webkit-image-set(url(100_100pxImg.png) 1x, url(200_200pxImg.png) 2x); /* 当然 你还需要复制几行其它浏览器厂商的私有标签,如 -moz- */ /* 由于目前市面上没有参照像素1.5,且浏览器为ios6或chrome21以上的设备,url(150_150pxImg.png) 1.5x) 是否能被识别不得而知*/
目前支持的浏览器有:ios6的safari、chrome 21以上。
原文:http://blog.youyo.name/archives/mobile-device-screen-pixel-density.html
相关推荐
屏幕密度与分辨率是移动设备开发中至关重要的概念,它们直接影响着应用程序在不同尺寸和像素密度的屏幕上显示的效果。本文将深入探讨屏幕密度、分辨率的概念及其关系,并解释如何在多屏幕设备上实现良好的适配。 ##...
这主要源于高像素密度带来的数据量巨大,以及在不同设备上高效显示和处理这些图像的需求。在本主题中,我们将深入探讨“超高分辨率图片下载”所涉及的关键知识点。 首先,我们来看看“超高分辨率”这个概念。它通常...
然而,不同的设备可能具有不同的像素密度(PPI),这决定了同样大小的屏幕在不同设备上显示的像素数量。 多分辨率屏幕自适应的核心是响应式设计(Responsive Design)。这种设计方法强调根据用户的行为和设备环境...
在移动设备领域,适配不同分辨率的屏幕是应用程序开发中的一个重要环节。随着智能手机和平板电脑种类的多样化,设备的屏幕尺寸和分辨率差异显著,开发者需要确保应用在各种设备上都能提供一致且良好的用户体验。...
屏幕像素计算器是一款专门用于计算手机屏幕像素密度的工具,它基于像素点的数量和屏幕尺寸来确定设备的像素每英寸(PPI,Pixels Per Inch)值。PPI是衡量屏幕清晰度的重要指标,高PPI意味着更高的图像质量和更细腻的...
手机分辨率和密度是移动设备显示领域中的两个关键概念,它们直接影响到用户在手机屏幕上看到的图像质量和清晰度。本文将深入探讨这两个概念,以及如何理解和处理它们。 首先,分辨率是指屏幕上像素的数量,通常以...
在Android操作系统中,移动终端设备的分辨率多样性是一个重要的议题,因为不同的设备有着不同的屏幕尺寸和像素密度。"电信设备-一种Android移动终端支持不同分辨率的方法.zip"中的核心内容是关于如何在Android平台上...
8. **设备适配策略**:开发者应建立一套设备适配策略,包括最小和最大屏幕尺寸、像素密度限制,以及对特定硬件特性的支持,以确保应用在目标市场上的可用性和用户体验。 总之,处理不同分辨率显示屏的兼容性是移动...
同时,使用Asset Catalogs可以方便地管理不同分辨率的图片资源,系统会根据设备的屏幕类型自动选择合适的图片。 描述中的“测试过了”意味着开发者已经对图片在不同设备上的显示效果进行了验证。这通常包括在模拟器...
CSS检测高像素密度屏幕设备的样式主要利用了CSS3中的媒体查询(Media Queries)功能以及设备像素比的概念,来为不同像素密度的屏幕设备提供不同的样式表现。在本知识点中,我们将详细探讨如何通过CSS技术来实现对高...
在多分辨率环境下,自适应设计意味着程序界面能够根据显示器的像素密度动态调整布局,保证内容的清晰可读性和整体布局的合理性。这通常涉及到以下几个核心元素: 1. **百分比缩放**:在LabVIEW中,可以使用百分比...
在使用修改器前,用户需要了解自己设备的原始屏幕分辨率和像素密度,以免修改后出现显示异常或性能下降。例如,过高的分辨率可能导致游戏运行缓慢,因为需要处理的数据量增加。因此,选择一个适中的分辨率至关重要,...
分辨率则是衡量图像或屏幕上像素密度的指标,通常以像素每英寸(PPI)来表示。在显示设备中,高分辨率意味着单位面积内有更多的像素,从而呈现更清晰的图像。例如,一个1920x1080分辨率的屏幕意味着水平方向上有1920...
"LDChange" 标签可能是指该工具具有改变或调整屏幕显示参数的能力,这可能包括像素密度(DPI)或其他视觉设置。然而,具体到“LDChange.exe”这个文件,它很可能是这个测量工具的可执行程序。在Windows操作系统中,...
在实际开发中,需要考虑到不同Android设备之间存在的屏幕尺寸、分辨率和像素密度的差异。这些参数决定了屏幕显示的实际外观和尺寸,对于用户体验和界面布局设计至关重要。屏幕大小通常以对角线的长度来表示,而屏幕...
在Android开发中,不同的屏幕密度需要对应不同分辨率的图片,以确保在各种设备上都能有良好的显示效果。这五个文件夹名——`drawable-hdpi`、`drawable-xhdpi`、`drawable-xxhdpi`、`drawable-mdpi`和`drawable-...
在设计过程中,切图是一项重要的任务,设计师需要根据设备的像素密度提供不同分辨率的图片资源,以确保在不同设备上清晰显示。iOS通常有@1x、@2x和@3x的资源版本,而Android则需要为hdpi、xhdpi、xxhdpi和xxxhdpi等...
了解并运用屏幕分辨率、像素密度、设备独立像素、以及物理像素等概念,能够帮助开发者在设计和开发过程中,制作出适应不同移动设备的高质量网页。随着移动设备屏幕技术的不断进步,这些知识点对于移动Web开发者来说...
对于移动设备来说,屏幕分辨率的多样性是一个挑战,因为不同的设备有不同的屏幕尺寸和像素密度。cocos2d-x提供了自适应屏幕分辨率的功能,帮助开发者解决这一问题。本篇文章将深入探讨cocos2d-x如何实现自适应屏幕...
相较于PC端,移动设备屏幕尺寸和分辨率的多样性给应用程序的交互设计带来了挑战。淘宝UED开发团队在实践中总结了一系列关于移动应用程序交互设计适配的经验,本文将围绕这些经验进行深入探讨。 #### 二、当前热门...