0

0

CSS如何适配高分屏Retina屏幕的图片

P粉602998670

P粉602998670

发布时间:2026-03-11 15:17:22

|

466人浏览过

|

来源于php中文网

原创

retina屏背景图清晰需用@2x图+media query+background-size:准备icon.png与icon@2x.png,通过(-webkit-min-device-pixel-ratio: 2)或(min-resolution: 2dppx)切换,并设background-size为逻辑尺寸。

css如何适配高分屏retina屏幕的图片

background-image怎么写才能在Retina屏显示清晰

直接用background-image设一张普通尺寸图,在Mac或iPhone上会发虚。根本原因是CSS像素和设备物理像素不一致——Retina屏1个CSS像素对应2×2甚至3×3个物理像素,原图没足够细节就只能插值拉伸。

解决方法不是“换高清图”就完事,得配合background-size和媒体查询精准控制:

  • 准备两版图:icon.png(1x)和icon@2x.png(2x,宽高都是1x的2倍)
  • min-resolution: 2dppx(-webkit-min-device-pixel-ratio: 2)做媒体查询兜底,老Safari必须用后者
  • background-size必须显式设为原图逻辑尺寸,比如图是100×100px但用了@2x版本,就得写background-size: 50px 50px

示例:

div {
  background-image: url(icon.png);
}
@media (-webkit-min-device-pixel-ratio: 2), (min-resolution: 2dppx) {
  div {
    background-image: url(icon@2x.png);
    background-size: 50px 50px; /* 关键:否则会放大成200×200 CSS像素 */
  }
}

img标签srcset属性为什么有时没生效

srcset本身没问题,但失效常是因为忽略了sizes或HTML解析顺序。浏览器根据sizes算出目标宽度后,才从srcset里选最匹配的图源;没写sizes时默认按100vw算,跟实际布局对不上就容易选错。

立即学习前端免费学习笔记(深入)”;

常见坑点:

  • 响应式布局中img父容器宽度不确定时,sizes必须写具体,比如sizes="(max-width: 768px) 100vw, 50vw"
  • srcset里的宽度描述符(如400w)指的是图片**原始文件宽度**,不是CSS渲染宽度
  • 不要混用srcsrcset指向同一张图,浏览器可能忽略srcset

正确写法示例:

多个微信小程序源码合集
多个微信小程序源码合集

微信小程序是一种轻量级的应用开发平台,由腾讯公司推出,主要应用于移动端,旨在提供便捷的用户体验,无需下载安装即可在微信内使用。本压缩包包含了丰富的源码资源,涵盖了多个领域的应用场景,下面将逐一介绍其中涉及的知识点。1. 图片展示:这部分源码可能涉及了微信小程序中的``组件的使用,用于显示图片,以及`wx.getSystemInfo`接口获取屏幕尺寸,实现图片的适配和响应式布局。可能还包括了图片懒加

下载
@@##@@

SVG作为背景图是否天然适配Retina

是,但有个前提:SVG文件里不能有<image></image>嵌入位图,也不能用background-image引用外部PNG/JPG。只要纯矢量路径、渐变、文字,缩放再大都清晰。

不过要注意几个实际限制:

  • background-image: url(icon.svg)时,确保服务器返回Content-Type: image/svg+xml,否则部分浏览器拒绝渲染
  • 内联SVG(data:image/svg+xml, base64)要URL编码,特别是#这些符号,否则解析失败
  • 如果SVG里用了px单位定义画布尺寸(如width="16px"),在高分屏下可能被错误缩放,建议改用无单位或em

伪元素::before/::after里的图片怎么适配

伪元素没法直接写srcset,只能靠background-image + 媒体查询。但这里有个隐蔽问题:伪元素默认display: inline,没有宽高,背景图即使加载了也看不见。

必须手动设置:

  • content: ""(否则伪元素不渲染)
  • display: blockinline-block
  • widthheight(用emrem更稳妥,避免固定px在高分屏下失真)
  • 背景图尺寸用background-size: contain或具体值,别用100% 100%——那会强行拉伸

示例:

.card::before {
  content: "";
  display: inline-block;
  width: 1.5em;
  height: 1.5em;
  background-image: url(icon.svg);
}
@media (-webkit-min-device-pixel-ratio: 2) {
  .card::before {
    background-image: url(icon@2x.png);
    background-size: 1.5em 1.5em; /* 必须同步调整 */
  }
}

真正麻烦的是混合场景:比如一个组件同时用imgbackground-image和SVG图标,三者适配逻辑不统一,很容易漏掉某一处。这时候别依赖“差不多”,得逐个检查渲染后的实际像素比——打开Chrome DevTools,右键检查元素,看Computed里background-image加载的是哪张,imgcurrentSrc是什么,再对比设备像素比。这才是最实在的验证方式。

示例

热门AI工具

更多
DeepSeek
DeepSeek

幻方量化公司旗下的开源大模型平台

豆包大模型
豆包大模型

字节跳动自主研发的一系列大型语言模型

通义千问
通义千问

阿里巴巴推出的全能AI助手

腾讯元宝
腾讯元宝

腾讯混元平台推出的AI助手

文心一言
文心一言

文心一言是百度开发的AI聊天机器人,通过对话可以生成各种形式的内容。

讯飞写作
讯飞写作

基于讯飞星火大模型的AI写作工具,可以快速生成新闻稿件、品宣文案、工作总结、心得体会等各种文文稿

即梦AI
即梦AI

一站式AI创作平台,免费AI图片和视频生成。

ChatGPT
ChatGPT

最最强大的AI聊天机器人程序,ChatGPT不单是聊天机器人,还能进行撰写邮件、视频脚本、文案、翻译、代码等任务。

相关专题

更多
chrome什么意思
chrome什么意思

chrome是浏览器的意思,由Google开发的网络浏览器,它在2008年首次发布,并迅速成为全球最受欢迎的浏览器之一。本专题为大家提供chrome相关的文章、下载、课程内容,供大家免费下载体验。

1056

2023.08.11

chrome无法加载插件怎么办
chrome无法加载插件怎么办

chrome无法加载插件可以通过检查插件是否已正确安装、禁用和启用插件、清除插件缓存、更新浏览器和插件、检查网络连接和尝试在隐身模式下加载插件方法解决。更多关于chrome相关问题,详情请看本专题下面的文章。php中文网欢迎大家前来学习。

837

2023.11.06

pdf怎么转换成xml格式
pdf怎么转换成xml格式

将 pdf 转换为 xml 的方法:1. 使用在线转换器;2. 使用桌面软件(如 adobe acrobat、itext);3. 使用命令行工具(如 pdftoxml)。本专题为大家提供相关的文章、下载、课程内容,供大家免费下载体验。

1946

2024.04.01

xml怎么变成word
xml怎么变成word

步骤:1. 导入 xml 文件;2. 选择 xml 结构;3. 映射 xml 元素到 word 元素;4. 生成 word 文档。提示:确保 xml 文件结构良好,并预览 word 文档以验证转换是否成功。想了解更多xml的相关内容,可以阅读本专题下面的文章。

2119

2024.08.01

xml是什么格式的文件
xml是什么格式的文件

xml是一种纯文本格式的文件。xml指的是可扩展标记语言,标准通用标记语言的子集,是一种用于标记电子文件使其具有结构性的标记语言。想了解更多相关的内容,可阅读本专题下面的相关文章。

1168

2024.11.28

iPhone文本消息乱序错误如何解决?
iPhone文本消息乱序错误如何解决?

解决办法:1、强制关闭消息应用程序;2、重启你的iPhone;3、自动禁用设置并再次启用;4、关闭iMessage并重新打开;5、重置所有设置;6、使用ReiBoot修复iOS。本专题为大家提供相关的文章、下载、课程内容,供大家免费下载体验。

393

2024.11.19

删除iPhone上所有照片的方法
删除iPhone上所有照片的方法

删除iPhone上所有照片的方法;1、删除整个照片库;2、从相册中删除所有照片;3、仅从图库中删除照片;4、仅删除视频,屏幕截图,自拍,实时或人像照片;5、删除某人的所有照片;6、永久删除已删除的照片等等。想了解更多相关的内容,请阅读专题下面的文章。

953

2024.12.11

iPhone静音开关不起作用
iPhone静音开关不起作用

若 iPhone 静音开关失效,先检查硬件,看开关状态、清洁缝隙。接着重启手机,查看静音及勿扰模式设置,更新系统。若都不行,可恢复出厂设置(提前备份)。若仍无效,可能是严重硬件问题,需联系苹果客服或去授权维修中心。

180

2025.03.20

C# ASP.NET Core微服务架构与API网关实践
C# ASP.NET Core微服务架构与API网关实践

本专题围绕 C# 在现代后端架构中的微服务实践展开,系统讲解基于 ASP.NET Core 构建可扩展服务体系的核心方法。内容涵盖服务拆分策略、RESTful API 设计、服务间通信、API 网关统一入口管理以及服务治理机制。通过真实项目案例,帮助开发者掌握构建高可用微服务系统的关键技术,提高系统的可扩展性与维护效率。

3

2026.03.11

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
Sass 教程
Sass 教程

共14课时 | 0.9万人学习

Bootstrap 5教程
Bootstrap 5教程

共46课时 | 3.6万人学习

CSS教程
CSS教程

共754课时 | 41.9万人学习

关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号