编程笔记 html5cssjs 029 HTML图像

编程笔记 html5&css&js 029 HTML图像

  • 一、`<img>`:图像元素
  • 二、支持的图像格式
  • 三、属性
  • 四、练习
  • 小结

图像(图片)是网页的必备元素。

一、<img>:图像元素

<img> HTML 元素将一张图像嵌入文档。

<img src="images/029-1.png" alt="" />

上面的例子展示了 <img> 元素的用法:
src 属性是必须的,它包含了你想嵌入的图片的路径。
alt 属性包含一条对图像的文本描述,这不是强制性的,但对无障碍而言,它难以置信地有用——屏幕阅读器会将这些描述读给需要使用阅读器的使用者听,让他们知道图像的含义。如果由于某种原因无法加载图像,普通浏览器也会在页面上显示 alt 属性中的备用文本:例如,网络错误、内容被屏蔽或链接过期。
还有很多其他属性,可以实现各种不同的目的:
Referrer/CORS 控制,保证安全与隐私:详见 crossorigin 和 referrerpolicy 属性。
使用 width 和 height 设置图像的固有尺寸(intrinsic size):这将设置图像应占用的空间,以确保图像被加载之前页面的布局是稳定的。使用 sizes 和 srcset 设置响应式图像。

二、支持的图像格式

HTML 标准并没有给出需要支持的图像格式的列表,因此每个用户代理支持一组不同的格式。
备注: 网页浏览器图像格式指南提供了有关图像格式及 Web 浏览器支持的综合信息。本节只是一个总结!
Web 最常用的图像格式是:
APNG(动态可移植网络图形)——无损动画序列的不错选择(GIF 性能较差)。
AVIF(AV1 图像文件格式)——静态图像或动画的不错选择,其性能较好。
GIF(图像互换格式)——简单图像和动画的不错选择。
JPEG(联合图像专家组)——有损压缩静态图像的不错选择(目前最流行的格式)。
PNG(便携式网络图形)——对于无损压缩静态图像而言是不错的选择(质量略好于 JPEG)。
SVG(可缩放矢量图形)——矢量图像格式。用于必须以不同尺寸准确描绘的图像。
WebP(网络图片格式)——图像和动画的绝佳选择。
推荐使用诸如 WebP 和 AVIF 等图像格式,因为它们在静态图像和动画的性能均比 PNG、JPEG、JIF 好得多。WebP 得到了广泛的支持,而 AVIF 则缺乏 Safari 的支持。
对于必须以不同尺寸准确绘制的图像,则仍然推荐使用 SVG 格式。

三、属性

此元素支持全局属性 (en-US)。
alt
定义了图像的备用文本描述。
非可视化浏览器(Non-visual browsers)(比如有视力障碍的人使用的音频浏览器)
用户选择不显示图像(比如为了节省带宽,或出于隐私考虑)
图像文件无效,或是使用了不支持的格式
在这些情况下,浏览器很可能会将图像替换为图像所属 元素的 alt 属性所提供的文本。基于上面罗列的原因,建议尽可能地通过 alt 属性提供一些有用的信息。
如果把这个属性设置为空字符串(alt=“”),则表明该图像不是内容的关键部分(这是一种装饰或者一个追踪像素点),非可视化浏览器在渲染 (en-US)的时候可能会忽略它。而且,如果图片加载失败,可视化浏览器会隐藏表示图片损坏的图标。
将图像复制并粘贴为文本,或是将图像的链接保存为浏览器书签时,也会用到此属性。

crossorigin
这个枚举属性表明是否必须使用 CORS 完成相关图像的抓取。启用 CORS 的图像可以在 元素中重复使用,而不会被标记为“污染(tainted)”。
如果未指定 crossorigin 属性,则会发送不启用 CORS 的请求(不会携带 Origin 请求标头),且浏览器会将图像标记为“被污染”并拒绝对图像数据的访问,阻止其在 <canvas> 元素中的使用。
如果指定了 crossorigin 属性,则会发送启用 CORS 的请求(会携带 Origin 请求标头);但是如果服务器不选择允许源站点对图像数据进行跨源访问(不发送任何 Access-Control-Allow-Origin 响应标头,或发送的 Access-Control-Allow-Origin 标头中不包含源站点),浏览器则会阻止图像的加载,并在开发者工具的控制台中记录 CORS 错误。
允许的值有:
anonymous
发送忽略凭据的跨源请求(即,不携带 cookie、X.509 证书 或 Authorization 请求标头)。
use-credentials
发送携带凭据的跨源请求(比如 cookie、X.509 证书和 Authorization 请求标头)。如果服务器不选择与源站共享凭据(通过返回 Access-Control-Allow-Credentials: true 响应标头) ,则浏览器会将图像标记为被污染且限制对其图像数据的访问。
如果属性是无效值,浏览器默认将其当做 anonymous 关键字。更多信息,请查看 CORS 属性设置。
decoding
为浏览器提供图像解码方式上的提示。允许的值:
sync
同步解码图像,实现与其他内容互斥的原子渲染。
async
异步解码图像,以减少其他内容的渲染延迟。
auto
默认值:不指定解码方式,由浏览器决定哪一种对用户来说是最合适的。
fetchpriority 实验性
提供获取图像时要使用的相对的优先级提示。允许的值:
high
表示其获取优先级相对其他图像要高。
low
表示其获取优先级相对其他图像要低。
auto
默认值:表示自动确定其相对其他图像的获取优先级。
height
图像的固有高度,以像素为单位。必须是没有单位的整数值。
备注: 同时包括 height 和 width 使浏览器在加载图像之前计算图像的长宽比。此长宽比用于保留显示图像所需的空间,减少甚至防止在下载图像并将其绘制到屏幕上时布局的偏移。减少布局偏移是良好用户体验和 Web 性能的主要组成部分。
ismap
这个布尔属性表示图像是否是服务器端图像映射的一部分。如果是,那么点击图片的精准坐标将会被发送到服务器。
备注: 只有在 <img> 元素是一个拥有有效 href 属性的 <a> 元素的后代元素的情况下,这个属性才会被允许使用。
loading
指示浏览器应当如何加载该图像。允许的值:
eager 立即加载图像,不管它是否在可视视口(visible viewport)之外(默认值)。 lazy
延迟加载图像,直到它和视口接近到一个计算得到的距离(由浏览器定义)。目的是在需要图像之前,避免加载图像所需要的网络和存储带宽。这通常会提高大多数典型用场景中内容的性能。
备注: 仅在启用 JavaScript 时才会延迟加载。这是一种反跟踪的措施,因为,如果用户代理在禁用脚本的情况下支持延迟加载,网站可以在会话中策略性地放置图像,通过服务器跟踪请求了多少图像以及请求在何时发起,来跟踪用户在整个会话期间的大致滚动位置。
referrerpolicy
一个字符串,指示在获取资源时使用的来源地址(referrer):
no-referrer:不会发送 Referer 标头。
no-referrer-when-downgrade:若未使用 TLS(HTTPS)导航到源站,则不发送 Referer 标头。
origin:发送到源站的来源地址将被限制为:协议、主机和端口。
origin-when-cross-origin:发送到其他来源的来源地址会被限制为协议、主机和端口。同源导航仍将包含路径。
same-origin:仅同源请求发送来源地址,而跨源请求则不包含来源地址信息。
strict-origin:仅在协议安全级别保持不变(HTTPS→HTTPS)的情况下将文档的来源作为来源地址发送。而在目标的安全性降低(HTTPS→HTTP)时则不发送来源地址。
strict-origin-when-cross-origin(默认值):执行同源请求时发送完整的 URL,且仅在协议安全级别保持不变(HTTPS→HTTPS)时发送来源(origin),在目标安全性降低(HTTPS→HTTP)时则不发送来源。
unsafe-url:来源地址包括来源(origin)和路径(path)(但不包括片段、密码或用户名)。这个值是不安全的,因为它将来源和路径从受 TLS 保护的资源泄露到不安全的来源。
sizes
表示资源大小的、以逗号隔开的一个或多个字符串。每一个资源大小包括:
一个媒体条件。最后一项一定是被忽略的。
一个资源大小的值。
媒体条件描述视口的属性,而不是图像的属性。例如,如果视口不高于 500px,则建议使用 1000px 宽的资源:(max-height: 500px) 1000px。
资源尺寸的值被用来指定图像的预期尺寸。当 srcset 中的资源使用了宽度描述符 w 时,用户代理会使用当前图像大小来选择 srcset 中合适的一个图像 URL。被选中的尺寸影响图像的显示大小 (en-US)(如果没有影响大小的 CSS 样式被应用的话)。如果没有设置 srcset 属性,或者没有属性值,那么 sizes 属性也将不起作用。
src
图像的 URL,这个属性对 元素来说是必需的。在支持 srcset 的浏览器中,src 被当做拥有一个像素密度的描述符 1x 的候选图像处理,除非一个图像拥有这个像素密度描述符已经被在 srcset 或者 srcset 包含 w 描述符中定义了。
srcset
以逗号分隔的一个或多个字符串列表表明一系列用户代理使用的可能的图像。每一个字符串由以下组成:
指向图像的 URL。
可选地,再加一个空格之后,附加以下的其一:
一个宽度描述符(一个正整数,后面紧跟 w 符号)。该整数宽度除以 sizes 属性给出的资源(source)大小来计算得到有效的像素密度,即换算成和 x 描述符等价的值。
一个像素密度描述符(一个正浮点数,后面紧跟 x 符号)。
如果没有指定源描述符,那它会被指定为默认的 1x。
在相同的 srcset 属性中混合使用宽度描述符和像素密度描述符时,会导致该值无效。重复的描述符(比如,两个源在相同的 srcset 两个源都是 2x)也是无效的。
用户代理自行决定选择任何可用的来源。这位它们提供了一个很大的选择余地,可以根据用户偏好或带宽条件等因素来进行选择。有关示例,可以参阅响应式图像教程。
width
图像的宽度,以像素为单位。必须是没有单位的整数。
usemap
与元素相关联的图像映射(image map) (en-US)的部分 URL(以 # 开始的部分)。
备注: 如果 <img> 元素是 <a><button> 元素的后代元素则不能使用这个属性。

四、练习

练习时可尝试使用不同属性。

<!DOCTYPE html>
<html lang="zh-cn"><title>编程笔记 html5&css&js HTML图片</title><meta charset="utf-8" /><style>body {color: cyan;background-color: teal;}.container {width: 500px; /* 设置容器的宽度 */margin: 0 auto; /* 将左右边距设置为自动 */line-height: 2;}</style><body><div class="container"><img src="images/029-1.png" alt="" /></div></body>
</html>

小结

在网页的综合设计中,是以需求为导向,不是以标准为导向的。

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

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

相关文章

wordcloud,一个超酷的python库

一、简单介绍一下 词云图是文本挖掘中用来表征词频的数据可视化图像&#xff0c;通过它可以很直观地展现文本数据中地高频词&#xff0c;让读者能够从大量文本数据中快速抓住重点。如下图&#xff1a; wordcloud则是一个非常优秀的词云展示python库&#xff0c;它支持自定义词…

Nacos vs Eureka的区别:微服务注册中心的选择

摘要&#xff1a;本文将详细讲解Nacos和Eureka两个微服务注册中心的区别&#xff0c;并提供代码示例&#xff0c;帮助读者选择合适的注册中心来管理他们的微服务架构。 引言&#xff1a; 在微服务架构中&#xff0c;注册中心是一个关键组件&#xff0c;用于管理和协调各个微服…

文件夹重命名:如何一键完成简体中文文件夹名到繁体中文的批量转换

随着科技的发展&#xff0c;人类越来越依赖计算机和电子设备进行文件管理。在这个过程中&#xff0c;经常会遇到要将简体中文文件夹名转换为繁体中文的情况。这有助于统一文件名的格式&#xff0c;也能提高文件的可读性和检索性。那如何一键完成简体中文文件夹名到繁体中文的批…

CSC行业合作项目|政府公务员赴英国南安普顿大学访学交流

CSC的行业合作项目由于是单位性质及CSC资助等原因&#xff0c;申请者一般不去美国&#xff0c;而选择较易通过签证的国家&#xff0c;且访学交流的方向也偏向于非敏感领域。遵循这一原则&#xff0c;我们最终为U老师申请到英国南安普顿大学&#xff0c;使其顺利获批CSC&#xf…

【2024系统架构设计】 系统架构设计师第二版-面向服务架构设计理论与实践

目录 一 概述 二 SOA的参考架构 三 SOA主要协议和规范 四 SOA设计标准和原则 五 SOA的设计模式 六 SOA的构建和实施 ​

[算法与数据结构][c++]:左值、右值、左值引用、右值引用和std::move()

左值、右值、左值引用、右值引用和std::move 1. 什么是左值、右值2. 什么是左值引用、右值引用3. **右值引用和std::move的应用场景**3.1 实现移动语义3.2 **实例&#xff1a;vector::push_back使用std::move提高性能** **4. 完美转发 std::forward**5. Reference 写在前面&…

多模态推荐系统综述:一、特征交互 Bridge

一、特征交互 挑战1.如何融合不同语义空间中的模态特征并获得每种模态的偏好。GNN注意力 挑战2.如何在数据稀疏的情况下获得推荐模型的全面表示。对比学习解缠学习 挑战3. 如何优化轻量级推荐模型和参数化模态编码器。 1. Bridge 侧重于考虑多模态信息来捕获用户和项目之间的…

【一文详解】知识分享:(MySQL关系型数据库快速入门)

mysql基础 sql通用语法分类 DDL&#xff08;Data Define Language&#xff09;: 数据定义语言&#xff0c;用来定义数据库对象&#xff08;数据库、表、字段&#xff09;DML&#xff08;Data Manipulation Language&#xff09;: 数据操作语言&#xff0c;用来对数据库表中的…

彻底掌握Python中 * 号

Python中的 *号是一个特殊的符号&#xff0c;在其他编程语言中&#xff0c;它最广为人知的用途就是作为乘法运算的符号。 而在Python中&#xff0c;它的用途远不止如此。 本文总结了Python中*号的所有用途&#xff0c;以供参考。 1. 算术运算 *号用来做算术运算几乎是所有编…

creo老是卡住怎么办?如何解决Creo卡顿问题

Creo&#xff08;PRO/E&#xff09;是美国PTC公司于2010年10月推出CAD设计软件包。Creo是整合了PTC公司的三个软件Pro/Engineer的参数化技术、CoCreate的直接建模技术和ProductView的三维可视化技术的新型CAD设计软件包&#xff0c;是PTC公司闪电计划所推出的第一个产品。那么C…

随写sdfwer

# 1. 分块思想 author: Ir1d, HeRaNO, Xeonacid ## 简介 其实&#xff0c;分块是一种思想&#xff0c;而不是一种数据结构。 从 NOIP 到 NOI 到 IOI&#xff0c;各种难度的分块思想都有出现。 分块的基本思想是&#xff0c;通过对原数据的适当划分&#xff0c;并在划分后的…

C++类与对象基础(5)——日期类的实现

对于实现日期类中需要用到的例如&#xff1a;构造函数&#xff0c;析构函数&#xff0c;运算符重载等内容&#xff0c;已经在前面几篇文章中进行介绍&#xff0c;故本文只给出关于类和对象中日期类的代码实现&#xff0c;对于代码的原理不给予详细的解释&#xff1a; 1.头文件…

kubectl常用命令(全局篇)

格式 -o [cmd] -o json|yaml|wide 如&#xff1a;输出json格式 kubectl get ns ingress-nginx -o json 获取基本信息get #查看集群基本信息 kubectl get cs|pods|nodes|ns|svc|rc|deployments kubectl get cs kubectl get pods kubectl get nodes kubectl get ns kubectl g…

在openEuler环境下快速编译GreatSQL RPM包

在上一篇中&#xff0c;已经介绍了在CentOS环境下编译GreatSQL RPM包的过程&#xff0c;本文再介绍如何在openEuler环境下编译GreatSQL RPM包。 运行环境是docker中的openEuler 22.03 x86_64&#xff1a; $ docker -v Docker version 20.10.10, build b485636$ docker run -itd…

纯毛纱线市场调研:预计2026年增长至近20亿美元

纯毛纱线是指纯天然的羊毛纤维制成的纱线&#xff0c;具有柔软、保暖等优良特性。随着人们对于环保、可持续发展和健康产品的重视&#xff0c;全球纯毛纱线市场呈现出稳步增长的趋势。全球市场分析&#xff1a; 根据市场研究公司发布的报告&#xff0c;全球纯毛纱线市场规模在2…

Nginx 搭建可道云网盘

目录 1.安装php-fpm 2. 建站点根目录与配置 2.1 建站点根目录 2.2 配置 3. 搭建成功 1.安装php-fpm nginx 需要使用php 需要安装php-fpm yum install php-fpm php-mbstring php-mysqlnd php-gd -y 修改 www.conf 文件的配置29行和41行&#xff0c;将用户会让用户组改成n…

ArrayList部分功能实现

public class MyArraylist {public int[] elem;public int usedSize 0;//0//默认容量private static final int DEFAULT_SIZE 10;public MyArraylist() {this.elem new int[DEFAULT_SIZE];}/*** 打印顺序表:* 根据usedSize判断即可*/public void display() {for (int i 0; …

数据透明化是什么意思,什么是透明管理?

一、透明管理是什么 透明管理专注工业数据可视化分析与呈现&#xff0c;为企业提供一站式数据可视化分析解决方案。聚焦工业BI&#xff0c;基于工业管理特点&#xff0c;打造“指标监控-异常发现-根因溯源-举措拆解-效果监控”管理闭环&#xff0c;实现工业全层级的透明管理。…

SpringCloud-高级篇(十二)

在主从集群中slave节点发生了宕机&#xff0c;不用担心&#xff0c;只要它重启就能从master节点上完成数据的同步&#xff0c;恢复数据&#xff0c;如果宕机的不是slave而是master&#xff0c;是不是master重启就可以呢&#xff1f;如果你做了master节点的数据持久化&#xff0…

GPT火了一年了,你还不懂大语言模型吗?

本文主要介绍大语言的基本原理、以及应用场景和对未来的展望&#xff0c;侧重应用而非技术原理。 &#x1f3ac;个人简介&#xff1a;一个全栈工程师的升级之路&#xff01; &#x1f4cb;个人专栏&#xff1a;漫谈LLMs带来的AIGC浪潮 &#x1f380;CSDN主页 发狂的小花 &#…