HTML如何创建分区响应图?

news/2025/2/24 3:54:15/文章来源:https://www.cnblogs.com/ai888/p/18566729

要创建分区响应式图像,HTML本身并不能直接做到。HTML只是提供图像的结构<img>,而响应式行为需要配合CSS或JavaScript来实现。以下几种常见方法:

1. 使用srcsetsizes属性 (推荐)

这是HTML5提供的原生响应式图像解决方案,浏览器会根据屏幕大小和分辨率选择最合适的图像源。

<img srcset="image-small.jpg 300w,image-medium.jpg 600w,image-large.jpg 900w"sizes="(max-width: 300px) 100vw,(max-width: 600px) 50vw,33vw"src="image-medium.jpg" alt="My responsive image">
  • srcset: 列出不同大小的图像以及它们的宽度(w描述符)。
  • sizes: 定义图像在不同视口宽度下的尺寸。vw单位表示视口宽度百分比。
  • src: 提供一个默认图像,以防浏览器不支持srcset

2. 使用<picture>元素和source元素

<picture>元素提供更强大的艺术方向控制,可以根据不同的屏幕尺寸或设备特性显示不同的图像。

<picture><source media="(max-width: 600px)" srcset="image-small.jpg"><source media="(max-width: 900px)" srcset="image-medium.jpg"><img src="image-large.jpg" alt="My responsive image">
</picture>
  • <source>: 指定不同的图像源,并使用media属性设置应用条件。
  • <img>: 作为后备方案,如果浏览器不支持<picture>,则显示此图像。

3. 使用CSS媒体查询

通过CSS媒体查询,可以根据视口宽度改变图像的src属性或背景图像。

<img src="image-large.jpg" alt="My responsive image" class="responsive-image"><style>.responsive-image {width: 100%;}@media (max-width: 600px) {.responsive-image {content: url("image-small.jpg"); /* 如果是背景图片 *//* 或 *//* JS 方法配合修改 src 属性 */}}
</style><script>
// JS 方法配合修改 src 属性
window.addEventListener('resize', function() {const img = document.querySelector('.responsive-image');if (window.innerWidth <= 600) {img.src = 'image-small.jpg';} else {img.src = 'image-large.jpg';}
});
</script>
  • 这种方法需要JavaScript配合才能修改src属性,直接在CSS中修改src属性不被推荐,因为会产生额外的请求。 背景图片可以直接在CSS中修改。

总结:

srcsetsizes属性是创建响应式图像的首选方法,因为它简单易用且性能良好。<picture>元素适用于需要更精细控制的情况,例如艺术方向。CSS媒体查询则更适合控制背景图像或配合JavaScript动态修改src。 选择哪种方法取决于你的具体需求。

记住,为了获得最佳性能,你应该始终优化图像大小并使用适当的压缩技术。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/840669.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

SFOD:尖峰聚变目标探测器

SFOD:尖峰聚变目标探测器 事件摄像机具有高时间分辨率、高动态范围、低功耗和高像素带宽的特点,为特殊环境中的物体检测提供了独特的能力。尽管有这些优点,但事件数据的固有稀疏性和异步性对现有的对象检测算法提出了挑战。受人脑编码和处理信息方式的启发,尖峰神经网络(S…

2024-11-24通达信指标:副图显示大盘指标

DRAWKLINE("999999$H","999999$O","999999$L","999999$C");

other 1878

1878. Get Biggest Three Rhombus Sums in a GridYou are given an m x n integer matrix grid​​​. A rhombus sum is the sum of the elements that form the border of a regular rhombus shape in grid​​​. The rhombus must have the shape of a square rotated 45 d…

ue5.3的game play effect 添加gameplay tags的操作变化

ue5.3的game play effect默认界面没用各种tags,得在Component这里Add element,然后选想要的tag,如图所示

HCIA-08 以太网交换基础

介绍以太网协议的相关概念、MAC地址的类型、二层交换机的工作流程以及二层交换机的工作原理。目录 1-以太网协议:冲突域&广播域 2-以太网帧 2.1 MAC&IP 2.2 帧类型 以太网交换机 同网段通信全过程 1-以太网协议:冲突域&广播域 以太网是当今现有局域网(Local Are…

计算机常识——零拷贝

前言 什么是零拷贝技术? 首先计算机不存在什么真的零拷贝技术,这点是确认的。 零拷贝值得是减少多余的拷贝的意思。 正文 首先如果我们要传输文件是怎么处理的呢? 当需要从磁盘读取数据到内存时,‌CPU会发出指令通知硬盘控制器进行读取操作。‌ 此后,‌CPU可以执行其他任务…

编译 App 工程

Android Studio 跟 IDEA 一样,被改动的文件会自动保存,无须开发者手工保存。它还会自动编译最新的代码,如果代码有误,编辑界面会标红提示出错了。但是有时候可能因为异常关闭的缘故,造成 Android Studio 的编译文件发生损坏,此时需要开发者手动重新编译,手动编译有以下 …

华为交换机简单配置方法

ARP地址解析 二层交换机图示在二层交换机内主机第一次ping对方以后,即第一次发ARP广播,交换机记录双方的mac ip对应地址地址表,后续再交换数据,变成单播display mac-address 查看mac地址表 划分vlan(虚拟局域网)创建vlan 10 20 2个 先把pc1 pc2 pc3 连接的交换机上的端…

RHEL9.4上使用apache搭建http服务器提供repo源

时间:2024.11.24 计划:使用apache搭建HTTP(Hypertext Transfer Protocol)服务器,共享iso镜像为环境内其他主机提供repo(repository)源 参照:马哥教育王老师课程 基于Linux系统的本地Yum源搭建与配置(ISO方式、RPM方式) https://developer.aliyun.com/article/1356520 如何…

JVM常见面试题(四):垃圾回收

堆区域划分,对象什么时候可以被垃圾器回收,如何定位垃圾——引用计数法、可达性分析算法,JVM垃圾回收算法——标记清除算法、标记整理算法、复制算法、分代回收算法;JVM垃圾回收器——串行、并行、CMS垃圾回收器、G1垃圾回收器;强引用、软引用、弱引用、虚引用文章目录 前…

类和对象综合案例——模仿电影信息系统

1.需求2.实际操作 1.创建一个实体类 首先第一件事,就是写好一个实体类,为后面封装所有数据做准备,我们只需要私有化成员变量,然后再ptg即可2.创建处理业务类和测试类 写好了实体类就要开始处理业务了,所以我们要再创建一个专门处理业务的类,名为MovieService 写完了业务类…

CF2038A - Bonus Project 题解

题目传送门 https://codeforces.com/contest/2038/problem/A 先大致捋一下题目的含义 一共有n个工程师,每个工程师完成相应的工作都有一定的奖金a,但同时也会消耗成本b,目前一共有k个工作需要做 这些工程师对他们的同事很友好,他们能接受自己的总收益为0来增长经验,但不能…