HTML 图像与多媒体元素:拓展学习边界的进度记录(一)

开篇:学习启程

在前端开发的广袤领域中,HTML 作为构建网页的基石,其重要性不言而喻。而 HTML 图像与多媒体元素,就像是为这座基石添上了绚丽的色彩与灵动的音符,赋予网页更加丰富的表现力和交互性。作为一名热衷于探索前端技术的博主,我深知掌握这些元素对于提升网页开发能力的关键作用。于是,我踏上了深入学习 HTML 图像与多媒体元素的征程,并决定将学习过程中的点滴记录下来,与大家一同分享。希望通过这篇学习进度记录,不仅能梳理自己的学习思路,也能为同样在学习前端的小伙伴们提供一些参考和帮助 。

初窥门径:基本语法掌握

(一)图像元素<img>

<img>标签用于在网页中插入图像,它是一个自闭合标签,没有结束标签 。其最常用的属性是src(source 的缩写),用于指定图像的路径。路径可以是相对路径(相对于当前 HTML 文件的路径)或绝对路径(完整的 URL 地址)。比如,当图片example.jpg与 HTML 文件位于同一目录时,代码可以这样写:<img src="example.jpg" alt="这是一张示例图片">。这里的alt属性也非常重要,它提供了图像的替代文本,当图像无法显示时(比如图片文件丢失、网络加载失败等情况),就会显示alt属性中的文本 ;同时,对于使用屏幕阅读器的视障用户来说,alt文本能帮助他们理解图像的内容,提升网页的可访问性。例如,<img src="broken.jpg" alt="无法加载的示例图片">,在图片broken.jpg无法显示时,页面上就会显示 “无法加载的示例图片”。除了src和alt属性,<img>标签还可以设置width(宽度)和height(高度)属性来指定图像显示的尺寸,单位可以是像素(px)或者百分比。例如:<img src="example.jpg" alt="示例图片" width="200" height="150">,这会将图片显示为宽度 200 像素、高度 150 像素。不过,在实际开发中,更推荐使用 CSS 来控制图像的尺寸,这样可以使样式和结构分离,便于维护和管理 。

(二)音频元素<audio>

<audio>元素用于在网页中嵌入音频内容。通过src属性可以指定音频文件的路径,与<img>标签的src属性类似,同样支持相对路径和绝对路径。例如:<audio src="music.mp3"></audio>,这样就引入了一个名为music.mp3的音频文件。但此时在页面上不会显示任何播放控件,用户无法操作音频的播放。若要显示播放控件,让用户能够控制音频的播放、暂停、音量等操作,就需要添加controls属性,代码变为:<audio src="music.mp3" controls></audio>。另外,autoplay属性可以设置音频文件在页面加载完成后是否自动播放。不过,需要注意的是,由于自动播放音频可能会影响用户体验,许多浏览器默认禁用了这一功能,即使设置了autoplay属性,音频也可能不会自动播放。例如:<audio src="music.mp3" controls autoplay></audio>。还有loop属性,用于设置音频是否循环播放,当设置loop属性后,音频播放完毕会自动重新开始播放 ,如<audio src="music.mp3" controls loop></audio>。为了兼容不同浏览器对音频格式的支持,还可以使用<source>元素为<audio>提供多个音频源,浏览器会自动选择支持的格式进行播放。示例代码如下:

 

<audio controls>

<source src="music.mp3" type="audio/mpeg">

<source src="music.ogg" type="audio/ogg">

您的浏览器不支持播放该音频。

</audio>

(三)视频元素<video>

<video>元素用于在网页中嵌入视频。它的src属性同样用于指定视频文件的路径,controls属性用于显示视频播放控件,包含播放、暂停、进度条、音量控制等功能。例如:<video src="video.mp4" controls></video>,这样就可以在网页中展示一个可播放的视频。通过设置width和height属性,可以指定视频播放器的宽度和高度,单位为像素,比如<video src="video.mp4" controls width="640" height="360"></video>,将视频播放器设置为宽度 640 像素、高度 360 像素。autoplay属性用于设置视频是否自动播放,和音频的autoplay属性一样,现在很多浏览器出于用户体验考虑,默认禁止自动播放视频,若要自动播放,可能需要结合muted(静音)属性来实现,如<video src="video.mp4" controls autoplay muted></video>。loop属性用于设置视频是否循环播放,当设置了该属性,视频播放结束后会自动重新开始播放 ,代码示例为<video src="video.mp4" controls loop></video>。另外,和音频类似,为了兼容不同浏览器对视频格式的支持,也可以使用<source>元素为<video>提供多个视频源 ,如下是示例代码:

 

<video controls>

<source src="video.mp4" type="video/mp4">

<source src="video.webm" type="video/webm">

您的浏览器不支持播放该视频。

</video>

在学习这些基本语法的过程中,我通过不断地实践和修改代码,逐渐熟悉了各个属性的用法和效果。每一次成功地在网页中插入图像、音频或视频,都让我感受到前端开发的魅力和乐趣,也为后续更深入的学习奠定了坚实的基础 。

进阶之路:属性与细节探究

(一)图像的高级属性

在掌握了<img>标签的基本用法后,我进一步探索了它的一些高级属性 。title属性是一个非常实用的属性,当鼠标悬停在图像上时,title属性的值会以工具提示的形式显示出来,为用户提供关于图像的额外信息 。比如,在一个展示旅游景点的网页中,对于一张长城的图片,可以设置<img src="great_wall.jpg" alt="长城" title="中国伟大的历史建筑,万里长城">,这样当用户鼠标悬停在图片上时,就能看到关于长城的简要介绍,提升了用户体验 。另一个比较重要的属性是usemap,它用于将图像指定为客户端图像映射(image - map),也就是可以在图片上定义可点击的区域,并为这些区域添加链接 。使用usemap属性时,需要配合<map>元素一起使用 。例如,有一张校园地图的图片,想要实现点击不同的建筑区域跳转到对应的介绍页面,可以这样写代码:

 

<img src="campus_map.jpg" alt="校园地图" usemap="#campusMap">

<map name="campusMap">

<area shape="rect" coords="100,100,200,200" href="library.html" alt="图书馆">

<area shape="circle" coords="300,300,50" href="teaching_building.html" alt="教学楼">

</map>

在上述代码中,<img>标签的usemap属性值#campusMap与<map>标签的name属性值相对应,建立了图像与图像映射的关联 。<area>标签定义了图像映射中的可点击区域,shape属性指定区域的形状(这里分别为矩形rect和圆形circle),coords属性根据形状定义区域的坐标 ,href属性指定点击该区域后跳转的链接地址 ,alt属性提供了区域的替代文本 。通过这种方式,用户在浏览网页时,点击校园地图上的不同区域,就能快速跳转到相应建筑的介绍页面,大大增强了网页的交互性 。

(二)音频的特殊属性

对于<audio>标签,除了之前学习的基本属性外,autoplay、loop、muted等属性也有着特殊的用途 。autoplay属性正如其名,设置后音频会在页面加载完成后自动播放 。在一些音乐播放网站或者需要自动播放背景音乐的网页中,这个属性就非常有用 。不过,正如前面提到的,现代浏览器为了避免自动播放音频给用户带来困扰,对其进行了限制,通常只有在满足一定条件(比如用户与页面进行了交互,或者音频设置为静音)时才会自动播放 。例如,一个音乐播放网页可能会这样设置:<audio src="background_music.mp3" controls autoplay muted>,这里结合了muted属性,使音频在自动播放时处于静音状态,这样既实现了自动播放的功能,又不会打扰用户 。loop属性用于设置音频循环播放,这在一些需要重复播放特定音频的场景中很常见,比如一些教学音频,希望学生能够反复收听 。使用loop属性后,音频播放完毕会自动重新开始播放 ,代码示例为<audio src="teaching_audio.mp3" controls loop>。muted属性则是将音频设置为静音状态,除了与autoplay属性配合使用外,也可以单独使用,让用户可以自行选择是否开启声音 ,如<audio src="music.mp3" controls muted> 。

(三)视频的独特属性

<video>标签的属性也十分丰富,除了和音频类似的autoplay、loop、muted属性外,poster属性是视频特有的一个很实用的属性 。poster用于指定一张图片作为视频的封面,当视频还未开始播放、处于加载状态或者暂停时,就会显示poster属性指定的图片 。这对于提升用户体验和吸引用户观看视频非常有帮助 。比如在视频网站中,每个视频都会展示一个吸引人的封面图片,这个封面图片就是通过poster属性来设置的 。例如:<video src="movie.mp4" controls poster="movie_poster.jpg">,这里movie_poster.jpg就是视频movie.mp4的封面图片 。autoplay属性设置视频自动播放,同样受到浏览器的限制,为了能自动播放,很多时候需要配合muted属性 ,像一些短视频平台的自动播放视频,大多是静音自动播放的 ,代码为<video src="short_video.mp4" controls autoplay muted> 。loop属性让视频循环播放,适合一些展示性的视频或者需要用户反复观看的教程类视频 ,如<video src="tutorial_video.mp4" controls loop> 。通过对这些属性的深入学习和实践,我对 HTML 多媒体元素的理解和运用更加熟练,能够根据不同的需求,灵活地设置音频和视频的播放效果 。

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

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

相关文章

循环不变量原则——螺旋矩阵

题目&#xff1a;螺旋矩阵 本题相较于螺旋矩阵II的不同之处是&#xff1a;螺旋矩阵II的矩阵是n行n列的方阵&#xff0c;而本题的矩阵并不一定是方阵。所以在遵循循环不变量原则遍历完矩阵后&#xff0c;还会有一行或者一列没有遍历。 1、行多列少&#xff08;多一列没遍历&am…

【前端】Visual Studio Code安装配置教程:下载、汉化、常用组件、基本操作

文章目录 一、Visual Studio Code下载二、汉化三、常用组件1、Auto Rename Tag2、view-in-browser3、Live Server 四、基本操作五、感谢观看&#xff01; 一、Visual Studio Code下载 下载官网&#xff1a;https://code.visualstudio.com/ 进入官网后点击右上角的Download &…

Java对象的hashcode

在 Java 中&#xff0c;hashcode 和 equals 方法是 Object 类的两个重要方法&#xff0c;它们在处理对象比较和哈希集合&#xff08;如 HashMap、HashSet&#xff09;时起着关键作用。对于equals大部分Java程序员都不陌生&#xff0c;它通常是比较两个对象的内容(值)是否相等(双…

Ubuntu22.04通过DKMS包安装Intel WiFi系列适配器(网卡驱动)

下载驱动包 访问 backport-iwlwifi-dkmshttps://launchpad.net/ubuntu/source/backport-iwlwifi-dkms 网站&#xff0c;找到适用于Ubuntu 22.04的update版本&#xff08;如backport-iwlwifi-dkms_xxxx_all.deb&#xff09;&#xff0c;下载至本地。 安装驱动 在下载目录中执行以…

深度学习--概率

1 基本概率论 1.1 假设我们掷骰子&#xff0c;想知道1而不是看到另一个数字的概率&#xff0c;如果骰子是公司&#xff0c;那么所有6个结果(1..6),都有相同的可能发生&#xff0c;因此&#xff0c;我们可以说1发生的概率为1/6. 然而现实生活中&#xff0c;对于我们从工厂收到的…

kaggle上经典泰坦尼克项目数据分析探索

之前了解在kaggle上这个项目很火&#xff0c;最近想要加强一下python数据分析&#xff0c;所以在kaggle上找到这个项目进行学习探索&#xff0c;下面是将一些学习资料以及过程整理出来。 一、首先我们了解一下项目背景以及如何找到这个项目。 kaggle项目地址: https://www.k…

《深度剖析:鸿蒙系统不同终端设备的UI自适应布局策略》

在万物互联的时代&#xff0c;鸿蒙系统以其独特的分布式理念和强大的技术架构&#xff0c;迅速在智能终端领域崭露头角。随着鸿蒙生态的不断壮大&#xff0c;越来越多的开发者投身其中&#xff0c;致力于为用户打造丰富多样的应用体验。然而&#xff0c;如何让应用在不同终端设…

计算机网络的软件、硬件和组成

&#xff11;.计算机网络的组成 计算机网络是一个十分复杂的系统&#xff0c;在逻辑上可以分为完成数据通信的通信子网和进行数据处理的资源子网两个部分。 通信子网 通信子网提供网络通信的功能&#xff0c;可以完成网络主机之间的数据传输、交换、通信控制和信号变换等通信…

告别低效人工统计!自动计算计划进度

实时监控任务进度一直是项目管理中的一项巨大挑战。 人工统计方式不仅耗时耗力&#xff0c;而且往往由于信息传递的延迟和人为误差&#xff0c;导致无法实时获得准确的项目进展信息。 这种不准确性可能掩盖潜在的风险点&#xff0c;从而影响项目的整体进度和成果。 Ganttable …

楼宇自控系统的结构密码:总线与分布式结构方式的差异与应用

在现代建筑中&#xff0c;为了实现高效、智能的管理&#xff0c;楼宇自控系统变得越来越重要。它就像建筑的 智能管家&#xff0c;可自动控制照明、空调、通风等各种机电设备&#xff0c;让建筑运行更顺畅&#xff0c;还能节省能源成本。而在楼宇自控系统里&#xff0c;有两种关…

OpenWrt开发第4篇:设置开发板的IP-基于Raspberry Pi 4B开发板

文/指尖动听知识库-谷谷 文章为付费内容,商业行为,禁止私自转载及抄袭,违者必究!!! 文章专栏:Openwrt开发-基于Raspberry Pi 4B开发板 有时候开发过程中经常会使用其他路由器,很多时候固件烧上去之后板子IP基本都是192.168.1.1,这时就需要修改板子的IP,下面介绍一下板…

Node.js系列(4)--微服务架构实践

Node.js微服务架构实践 &#x1f504; 引言 微服务架构已成为构建大规模Node.js应用的主流选择。本文将深入探讨Node.js微服务架构的设计与实现&#xff0c;包括服务拆分、服务治理、通信机制等方面&#xff0c;帮助开发者构建可扩展的微服务系统。 微服务架构概述 Node.js…

Docker逃逸

判断是否再docker中 1.ls -a / (查看c根目录查看是否有docker配置文件) 2.查看进程 如果在要逃逸到真实环境中&#xff1a; 特权模式进行docker逃逸&#xff1a;管理员执行eddocker run--privileg&#xff0c;如何判断是否是特权模式&#xff08;&#xff09; 特权模式以…

Vite管理的Vue3项目中monaco editer的使用以及组件封装

文章目录 背景环境说明安装流程以及组件封装引入依赖封装组件 外部使用实现效果 v-model实现原理 背景 做oj系统的时候,需要使用代码编辑器,决定使用Monaco Editor&#xff0c;但是因为自身能力问题&#xff0c;读不懂官网文档&#xff0c;最终结合ai和网友的帖子成功引入&…

pdf文件分页按需查看

pdf预览本来打算粗暴点&#xff0c;一次性查看全部&#xff0c;但是一个pdf四五百页导致手机端查看超出内存直接崩掉&#xff0c;崩掉会导致页面疯狂刷新&#xff0c;所以不得不进行优化 解决思路大致如下&#xff1a; canvas转为blob格式以图片的形式加载在页面&#xff08;B…

算力100问☞第92问:为什么各地热衷建设算力中心?

目录 1、宏观分析 2、政府角度分析 3、投资者角度分析 在数字化浪潮中,各地对算力中心建设的热情高涨,这一现象背后潜藏着诸多深层次的原因,涵盖了经济、科技、社会等多个维度,且彼此交织,共同驱动着这一发展趋势。 1、宏观分析 从经济结构转型的底层逻辑来看,全球经…

Redis 内存管理

Redis 内存管理 1. Redis 给缓存数据设置过期时间的作用 给缓存数据设置过期时间&#xff08;TTL, Time-To-Live&#xff09;有以下几个重要作用&#xff1a; (1) 自动释放内存 避免缓存数据无限增长&#xff0c;导致 Redis 内存溢出。例如&#xff0c;在 会话管理、短连接…

PyCharm中使用pip安装PyTorch(从0开始仅需两步)

无需 anaconda&#xff0c;只使用 pip 也可以在 PyCharm 集成环境中配置深度学习 PyTorch。 本文全部信息及示范来自 PyTorch 官网。 以防你是super小白&#xff1a; PyCharm 中的命令是在 Python Console 中运行&#xff0c;界面左下角竖排图标第一个。 1. 安装前置包 numpy …

掌握新编程语言的秘诀:利用 AI 快速上手 Python、Go、Java 和 Rust

网罗开发 &#xff08;小红书、快手、视频号同名&#xff09; 大家好&#xff0c;我是 展菲&#xff0c;目前在上市企业从事人工智能项目研发管理工作&#xff0c;平时热衷于分享各种编程领域的软硬技能知识以及前沿技术&#xff0c;包括iOS、前端、Harmony OS、Java、Python等…

如何理解java中Stream流?

在Java中&#xff0c;Stream 是 Java 8 引入的一个强大API&#xff0c;用于处理集合&#xff08;如 List、Set、Map 等&#xff09;数据的流式操作。它提供了一种声明式、函数式的编程风格&#xff0c;可以高效地进行过滤、映射、排序、聚合等操作。 Stream 的核心概念 流&…