做前端开发时,你是不是也遇到过这种情况:明明给 img 标签设了宽高,图片却要么拉伸变形,要么裁剪得只剩一半?其实问题根源不是你 “设错了尺寸”,而是没搞懂 img 标签的适配逻辑。这篇文章从基础到实战,帮你吃透 img 标签,再也不用为图片比例抓狂。
一、先搞懂:img 标签到底是个啥?
img 标签是 HTML 里专门用来放图片的 “容器”,但它不是普通容器 —— 它是替换元素(简单说:标签里的内容由外部图片决定,不是写在标签里的文字)。它的核心作用就 4 个:
- 链接图片资源(本地 / 网上的图片)
- 控制图片在页面上的样子(大小、位置、要不要裁剪)
- 图片加载失败时救场(比如显示 “头像加载失败” 的文字)
- 优化加载速度(比如滚动到屏幕再加载图片)
最基础的写法长这样,src和alt是必写的(少一个都可能出问题):
<img
src="头像.jpg" <!-- 图片路径:本地写相对路径,网上写完整URL -->
alt="用户头像" <!-- 加载失败时显示的文字,屏幕阅读器也靠它读图片 -->
class="avatar" <!-- 用CSS控制样式,推荐优先用class,别直接写style -->
>
二、必学!5 个核心属性,决定图片 “好不好看”
img 标签的属性不用学太多,重点掌握这 5 个,就能解决 90% 的问题。按 “用得上的优先级” 排序,新手也能快速上手。
1. 尺寸控制:width/height(最容易踩坑的属性)
作用:控制图片显示的宽和高,但有个关键规则 ——浏览器会默认 “保护图片原始比例”。
踩坑点:同时设宽高,且比例和图片不一致
比如图片原本是 4:3(800px × 600px),你偏要设成 300px × 300px:
<!-- 错误示范:强制正方形,图片会被拉变形 -->
<img src="风景.jpg" width="300" height="300" alt="变形的风景">
正确用法:只设一个维度,另一个让浏览器自动算
想让图片自适应容器宽度,又不变形?只设 width,height 写auto(CSS 里写更灵活):
/* CSS写法(推荐):宽度占满父容器,高度自动按比例算 */
.img-adapt {
width: 100%; /* 比如父容器是500px,图片就显示500px宽 */
height: auto; /* 浏览器自动算高度:500px × 3/4 = 375px,完美保持4:3 */
max-width: 800px; /* 防止图片在大屏上被拉得太大,模糊 */
}
2. 比例救星:object-fit(解决 “裁剪不对” 的终极方案)
当你需要 “固定容器尺寸”(比如 100px×100px 的头像框),但图片比例和容器不一样时,object-fit能控制图片 “怎么填这个框”。
5 个常用值,对应不同场景
| 属性值 |
效果说明 |
适合场景 |
| cover |
填满容器,超出部分裁剪(保比例) |
头像、Banner 图(要满屏) |
| contain |
完整显示图片,容器可能留空白(保比例) |
产品图、截图(不能裁内容) |

最低0.47元/天 解锁文章
848

被折叠的 条评论
为什么被折叠?



