可以通过以下步骤实现图片固定宽度、不拉伸且超出部分隐藏的效果:
<div class="image-container"> <img src="your-image.jpg" alt="示例图片"> </div>
.image-container { width: 300px; /* 固定容器宽度 */ height: 200px; /* 固定容器高度 */ overflow: hidden; /* 隐藏超出部分 */ position: relative; /* 为图片定位提供参照 */ /* 可选 - 增加样式修饰 */ border: 1px solid #ddd; border-radius: 4px; } .image-container img { width: 100%; /* 宽度撑满容器 */ height: 100%; /* 高度撑满容器 */ object-fit: cover; /* 保持比例填满容器,多余部分裁剪 */ object-position: center; /* 裁剪时保持居中(默认值可不写) */ /* 如果需要图片水平/垂直偏移裁剪位置 */ /* object-position: 20% 50%; */ }
容器设置
固定尺寸容器:通过 width
和 height
确定显示区域
overflow: hidden
:隐藏超出容器的图像部分
图片设置
width: 100%
和 height: 100%
:让图片充满容器
object-fit: cover
:核心属性,保持图片原始比例,并裁剪多余部分
object-position
:控制裁剪时的焦点位置(默认居中)
图片会按原始比例缩放,直至完全覆盖容器
图片的短边会被裁剪,保留中间部分(可通过 object-position 调整)
容器始终保持设定的固定尺寸
支持所有现代浏览器(IE11 需要 polyfill)
如果不介意使用背景图,也可以这样实现:
<div class="bg-image-container"></div>
.bg-image-container { width: 300px; height: 200px; background-image: url("your-image.jpg"); background-size: cover; /* 等效 object-fit: cover */ background-position: center; /* 等效 object-position */ background-repeat: no-repeat; }
两种方式效果相似,根据是否需要 SEO 优化/图片可访问性选择即可。使用 <img>
标签对搜索引擎更友好。