IT技术博客大学习 共学习 共进步
全部 移动开发 后端 数据库 AI 算法 安全 DevOps 前端 设计 开发者

CSS3 媒介判断与 iPhone 4 视网膜显示屏

UED TEAM 2010-07-20 22:59:38 累计浏览 3,769 次
本机暂存

    原图已失效

    (上图为部署了媒介判断后,同一网页在不同设备上的渲染结果对照。)

    四年前(初代 iPhone 上市前八个月)戴夫・海厄特(Dave Hyatt)在 Webkit 项目官方博客中谈及高 DPI 网站

    网页设计的一个显著趋势是高 DPI,这也将成为 Webkit 程序及 Dashboard 工具的重要议题。

    现在,未来已来到。

    iPhone 4 的「视网膜显示屏」将像素密度提升一倍,文字的锐度得以大大改善。但图像何如?为了保持现有网站的外观,图像将自动放大一倍。这便产生了「设备像素」和「 CSS 像素间」的分裂。

    约翰・格鲁伯在「为什 么是 960 × 640」中写道:

    我认为 MobileSafari 不会再逐点对应的渲染图片,因为新旧 iPhone 之间的像素尺寸极为悬殊。

    戴夫・海厄特再次写道:

    大多数设计师仍停留在传统的思想:CSS 像素即屏幕像素。然而,当我们进入高 DPI 的世界,用户界面可能被整体放大,一个 CSS 像素会占据多个屏幕像素。

    假设放大率为两倍,则一个 CSS 像素实际上表现为一块 2×2 的像素。

    这正发生在 iPhone 4 上。

    因此,对网页开发人员,问题变为:为适应高 DPI 设备,我该如何提升图片的分辨率?或更好的是,我如何才能保证在所有的浏览器里都能正常显示?

    苹果的 Safari 网页内 容指南历来推荐使用 CSS3 媒介判断(Media quiries),以便为不同的显示设备指定不同的样式表。但是,海厄特的帖子提到一个新的功能:device-pixel-ration,专为像素密度 而设。

    我把该功能加进我网站的移动版中:

    这告诉浏览器,如果设备的像素比大于 2 则使用「retina.css」。(目 前该功能似乎只能通过 -webkit 扩展实现。)

    「retina.css」 将图片置换为高分辨率版本,并使用 background-size 来调节 CSS 像素的位置。(我使用 Komodo Media 的图标集和 Mark James 的 Silk 图标。)

    高 DPI 设备为开发者提供了大展拳脚的即会,而这个例子仅是冰山一角。

    [原 文链接;作者:Walt Dickinson]

同分类推荐文章

  1. translateZ() (2026-06-25 21:18:56)
  2. translateY() (2026-06-25 21:17:56)
  3. translateX() (2026-06-25 21:16:01)

查看更多 前端 文章 →

建议继续学习

  1. css3:box-shadow边框阴影属性值详解 (累计阅读 27,110)
  2. 响应式网页设计 (累计阅读 19,798)
  3. 前端必须熟悉的10个CSS3属性 (累计阅读 7,719)
  4. 30个超棒的404错误页面 (累计阅读 7,301)
  5. webapp网页调试工具Chrome Devtools (累计阅读 6,986)
  6. 使用CSS3开启GPU硬件加速提升网站动画渲染性能 (累计阅读 6,635)
  7. css3-animation制作逐帧动画 (累计阅读 6,517)
  8. HTML5+CSS3 loading 效果收集 (累计阅读 6,438)
  9. Html5(css3)的瀑布流布局的实现 (累计阅读 5,359)
  10. 前端必须掌握30个CSS3选择器 (累计阅读 5,227)