苹果通过Retina显示屏为设备屏幕分辨率设定了新标准。 拥有百万像素的Retina显示屏可在屏幕上提供更生动,更详细和更清晰的图像。 但是,这会影响设计人员和开发人员在这些设备上交付图像的方式,因为未针对高分辨率屏幕进行优化的图像看起来会比恒星图像要差。

因此,在今天的帖子中,我们将研究如何提供针对高分辨率屏幕优化的特定图像。

使用矢量图形

首先,如果图像不需要逼真度或复杂的配色方案 ,则使用矢量图形可能是您的最佳选择。 与栅格图像不同,矢量图形不依赖于像素 ,因此在任何屏幕分辨率下,它都将显示得清晰细腻。

有几种方法可以在网络上添加矢量图形,我们既可以使用SVG,字体,也可以使用先前在以下主题中讨论过的Canvas:

  • 可扩展矢量图形系列
  • 指南:使用Web字体的更好,更清晰的UI图标

使用媒体查询

还有另一种方式。 我们可以使用Media Query有条件地提供针对特定屏幕分辨率的优化图形。 语法类似于用于建立响应式布局的媒体查询。 但是,不是指定视口宽度断点,而是指定设备像素比率(dpr)和屏幕分辨率阈值。

@media     only screen and (min-device-pixel-ratio: 2), only screen and (min-resolution: 192dpi) {/* Style Rules */
}

在上例中显示的Media Query将为屏幕分辨率分配样式,这些样式的最小设备像素比率为2或最小分辨率为192dpi

我们可以通过将屏幕分辨率除以对角线英寸来获取dpi值。

例如,一个分辨率为1280×800的13.3英寸屏幕将为我们提供96(dpi)。 因此,我们在上面的代码片段中显示的196的数量只是该数字(96dpi)的两倍左右。

在获得设备像素比率方面,这是相当科学的。 但是,如果您热衷于进行数学运算,那么HTML5 Rocks的Boris Smush将在本文中向您展示如何进行。

另外,我们也可以通过window.devicePixelRatio查询像素比率数。 在下面的示例中,我们从window.devicePixelRatio返回带有警报窗口的值。

var dpr     = window.devicePixelRatio;
alert('Device Pixel Ratio: ' + dpr);

这将在Retina显示屏上使用以下结果,例如新的MacBook Pro和iPhone 4。

在非Retina显示屏中,数字将返回1

此外,以下是一些流行设备的设备像素比率列表,供您参考。

设备 设备像素比
iPhone 4,iPhone 4S,iPhone 5,iPod Touch 2
带视网膜显示屏的iPad 2
Galaxy Nexus,Galaxy Note,Galaxy SIII 2
Kindle Fire HD 1.5
Galaxy S Plus,Galaxy SII 1.5

从表中,您可以看到有一些1.5 dpr的高清屏幕。 因此,最好在Media Query中将最小阈值设置为1.5,以涵盖更多的屏幕分辨率。

@media    only screen and (min-device-pixel-ratio: 1.5),only screen and (min-resolution: 192dpi) {/* style rules */
}

另外,为了在浏览器之间实现更广泛的兼容性,我们还可以添加min-device-pixel-ratio及其各自的供应商前缀,如下所示。

@media     only screen and (-webkit-min-device-pixel-ratio: 1.5),only screen and (   min--moz-device-pixel-ratio: 1.5),only screen and (     -o-min-device-pixel-ratio: 3/2),only screen and (        min-device-pixel-ratio: 1.5),only screen and (min-resolution: 192dpi) {/* Style Rules */
}

我们已经创建了一个演示页面。 在此页面中,我们分配了两种图像格式:用于常规屏幕分辨率的.png图像和用于高清屏幕的SVG,将通过Media Query进行分配,就像这样。

a {background-image: url('img/hongkiatcom.png');background-size: 100%;background-repeat: no-repeat;
}
@media     only screen and (-webkit-min-device-pixel-ratio: 1.5),only screen and (   min--moz-device-pixel-ratio: 1.5),only screen and (     -o-min-device-pixel-ratio: 3/2),only screen and (        min-device-pixel-ratio: 1.5),only screen and (min-resolution: 192dpi) {a {width: 100%;background-image: url('img/hongkiatcom.svg');background-size: 100%;background-repeat: no-repeat;}
}

现在,您可以通过正常和Retina显示屏测试演示。 它还将显示图像名称,该名称将显示在页面上。

  • 观看演示
  • 下载源

更多资源

  • 迈向Retina Web – Smashing Magazine。
  • 在视图中支持高分辨率屏幕 – Apple.com
  • 无前缀的Webkit分辨率媒体查询 – W3.org
  • 高DPI图像,可实现可变像素密度 – HTML5 Rocks
  • CSS3解析度值 – W3.org

翻译自: https://www.hongkiat.com/blog/css-retina-display/

mbp 外接显示器 视网膜_视网膜显示已准备就绪,可进行媒体查询相关推荐

  1. wan口有流量但电脑上不了网_电脑显示已连接上但是无法上网怎么办

    1 电脑显示已连接上但是无法上网怎么办 电脑联网时有时会遇到提示已经连接成功, 但是无法正常上 网的情况. 如果是使用的路由器上网那就是路由器的设置问题, 如果 是直接连接的网线那就是电脑网络设置的问 ...

  2. 联想e470无线网卡驱动_笔记本显示已关闭无线功能,请问怎样打开?谢谢!

    可能是由于笔记本的硬件或者快捷键开关没有打开,或者是笔记本的网卡驱动损坏无法识别无线网卡,也有可能是笔记本的网卡硬件的问题.你可以尝试以下方法解决: 1.有一些笔记本设置有硬件的无线网络开关,只能先打 ...

  3. 安卓修改wifi已停用_手机连不上wifi显示已保存怎么回事【原因介绍】

    问:为什么手机连不上wifi显示已保存?手机在连接WiFi的时候,WiFi显示已保存,手机连接不上wifi信号.请问这是什么原因引起的,应该怎么解决这个问题. 答:如果手机连接wifi时,显示已保存, ...

  4. 【看动漫学编程】程序员在异世界生个娃 第2篇:外挂已准备就绪

    前言 作者文笔比较水,还请见谅. 以下内容还将使用视频动态漫画表现,剪辑完将会贴出链接. 小说剧情为剧情需要,过渡到知识点,部分篇幅可能没有技术知识点还望谅解. 由于没有经费支持,所以画出来的东西是我 ...

  5. 服务器上的打印机显示已暂停,hp打印机显示已暂停怎么解决

    hp打印机显示已暂停怎么解决 如果打印机还是"暂停"状态,可以按照下列解决方法中的步骤逐个操作,帮助您解决问题. 解决方法 步骤一:检查打印机状态 在 Windows XP 和 W ...

  6. 新天龙八部凤鸣镇服务器没响应,win10系统玩新天龙八部显示已停止工作如何解决...

    天龙八部是款深受玩家们喜爱的游戏,可是近日有用户升级到win10系统之后,却遇到玩新天龙八部显示已停止工作的现象,该如何处理呢,本文就给大家讲解一下win10系统玩新天龙八部显示已停止工作的具体解决步 ...

  7. Ubuntu 中的 dpkg 安装deb、删除deb、显示已安装包列表、解压deb文件、显示deb包内文件列表、配置deb软件包

    1. dpkg 简介 dpkg 即 package manager for Debian ,是 Debian 和基于 Debian 的系统中一个主要的包管理工具,可以用来安装.构建.卸载.管理 deb ...

  8. C# WinForm 在窗口菜单上显示已打开窗体的标题及其窗体的排列

    1. C# WinForm 在窗口菜单上显示已打开窗体的标题 设置窗体菜单的MdiList属性为 True 2.窗体的排列 Code // //  平铺 base.LayoutMdi(MdiLayou ...

  9. 已读服务器返回为空,钉钉考勤显示已读什么意思

    大家好,我是时间财富网智能客服时间君,上述问题将由我为大家进行解答. 钉钉考勤显示已读的意思是对方已经接收到消息了,并且已经看过用户给他发的消息了. 钉钉(DingTalk)是中国领先的智能移动办公平 ...

最新文章

  1. Execution failed for task ':app:mergeDebugResources'.
  2. Ubuntu 安装NVidia驱动
  3. 计算机知识新闻稿,文科计算机大赛新闻稿
  4. C++有的地方为什么要类内定义,类外实现(类内声明,类外初始化)?
  5. JDK 1.4 主要新特性
  6. 新疆出差——特色美食大合集
  7. flask web开发的相关博文学习
  8. 聚类算法-K均值(K-means)
  9. 数据分析学习笔记—python面向对象与模块
  10. python 3.6中使用open函数遇见的问题
  11. Ubuntu下Android Studio连接手机无法识别
  12. 化学分子的溶解度预测模型(Rdkit构建)
  13. arcmap+vs2010
  14. 同文输入法 android,同文输入法app下载-同文输入法手机版-同文输入法最新版_易玩网...
  15. 大学生信息检索概论练习题
  16. 圆形头像制作,仿QQ做法。
  17. 2015年天翊他爹有想法了
  18. 常见企业拓扑Cisco配置:三层交换机互联、DHCP配置、路由器交换机配置、NAT静态地址转换、DMZ区域的ACL配置
  19. 如何在IDEA中创建Web项目
  20. equals和hashcode方法

热门文章

  1. php zip 文件名乱码,如何解决php zip解压乱码的问题
  2. 研究准备(3) 安装RNAfold
  3. 游戏模型 | 高模的羽毛领子的制作思路 2
  4. Kooboo中如何切换数据库(注意:如果切换数据库,需要Kooboo中没有一个website 否则会报错数据库中没有表之类的)...
  5. 00 汇编语言从小白到入门---先导课
  6. MySQL基础: 索引, 优化, 锁
  7. sql按时间取去重最近_SQL 去除重复、获取最新记录
  8. 群晖利用webstation搭建h5ai教程
  9. 夏季宝宝饮食要注意 五大饮食守则要牢记
  10. Android Locale语言设置