HTML 图像标签详解
基本图像标签 <img>
<img>
标签用于在网页中嵌入图像,它是一个空元素(不需要结束标签)。
1. 基本语法
html
<img src="path/to/image.jpg" alt="图片描述">
2. 必要属性
- src:指定图像的路径(必需)
- alt:图像的替代文本(必需,用于可访问性)
3. 可选属性
html
<img src="image.jpg"
alt="示例图片"
height="200" <!-- 高度 -->
width="300" <!-- 宽度 -->
loading="lazy" <!-- 延迟加载 -->
decoding="async" <!-- 异步解码 -->
title="图片标题" <!-- 悬停提示 -->
>
图像路径
1. 相对路径
html
<!-- 同级目录 -->
<img src="image.jpg">
<!-- 子目录 -->
<img src="images/photo.jpg">
<!-- 上级目录 -->
<img src="../images/photo.jpg">
2. 绝对路径
html
<!-- 完整URL -->
<img src="https://example.com/images/photo.jpg">
<!-- 根目录路径 -->
<img src="/images/photo.jpg">
响应式图像
1. srcset 属性
用于不同屏幕密度的图像源:
html
<img src="small.jpg"
srcset="small.jpg 300w,
medium.jpg 600w,
large.jpg 900w"
sizes="(max-width: 320px) 300px,
(max-width: 640px) 600px,
900px"
alt="响应式图片">
2. picture 元素
为不同场景提供不同图像源:
html
<picture>
<source media="(min-width: 800px)" srcset="large.jpg">
<source media="(min-width: 400px)" srcset="medium.jpg">
<img src="small.jpg" alt="响应式图片">
</picture>
图像优化
1. 加载优化
html
<!-- 延迟加载 -->
<img loading="lazy" src="image.jpg" alt="懒加载">
<!-- 预加载重要图片 -->
<link rel="preload" as="image" href="important.jpg">
2. 性能优化
html
<!-- 使用适当的图像格式 -->
<picture>
<source type="image/webp" srcset="image.webp">
<source type="image/jpeg" srcset="image.jpg">
<img src="image.jpg" alt="优化的图片">
</picture>
图像布局
1. 基本布局
html
<!-- 居中对齐 -->
<div style="text-align: center">
<img src="image.jpg" alt="居中图片">
</div>
<!-- 浮动布局 -->
<img src="image.jpg" alt="浮动图片" style="float: left; margin: 0 10px 10px 0">
2. 响应式布局
css
/* 响应式图片 */
img {
max-width: 100%;
height: auto;
}
/* 保持宽高比 */
.image-container {
position: relative;
padding-bottom: 56.25%; /* 16:9 比例 */
}
.image-container img {
position: absolute;
width: 100%;
height: 100%;
object-fit: cover;
}
图像可访问性
1. 替代文本
html
<!-- 描述性的 alt 文本 -->
<img src="cat.jpg" alt="一只橙色的猫咪正在睡觉">
<!-- 装饰性图片可以使用空 alt -->
<img src="decoration.jpg" alt="">
2. 图片说明
html
<!-- 使用 figure 和 figcaption -->
<figure>
<img src="chart.jpg" alt="2024年销售数据图表">
<figcaption>图1:2024年第一季度销售数据分析</figcaption>
</figure>
常见问题和解决方案
1. 图片未加载时的占位
html
<!-- 使用占位图 -->
<img src="image.jpg"
alt="图片"
onerror="this.src='placeholder.jpg'">
<!-- 或使用 CSS 背景色 -->
<img style="background-color: #f0f0f0">
2. 图片变形
css
/* 保持宽高比 */
img {
object-fit: cover; /* 裁剪以填充 */
object-fit: contain; /* 保持比例完整显示 */
}
最佳实践
性能考虑
- 使用适当的图片格式
- 压缩图片大小
- 使用响应式图片
- 实现延迟加载
可访问性
- 始终提供有意义的 alt 文本
- 使用适当的图片说明
- 确保足够的颜色对比度
维护性
- 使用有意义的文件名
- 保持图片资源结构化管理
- 记录图片尺寸和用途