2026-10-22 08:37:09
figure 标签的默认外边距会导致嵌套图片尺寸异常缩小,解决方案是通过 CSS 重置其默认外边距。
问题现象与原因示例代码中,.accommodation-item 容器设置 max-width: 180px,.accommodation-picture 图片设置 width: 180px,但实际显示尺寸异常缩小。
<figure> 是块级元素,浏览器默认会为其添加外边距(如 margin: 1em 或 40px),这些外边距会占据内部空间,导致 <img> 的可用布局区域减小。
当 <img> 应用 max-width: 100% 时,它会根据 <figure> 的实际内容宽度调整尺寸,而非父容器(如 .accommodation-item)的宽度,从而引发异常缩小。
在 CSS 中显式设置 figure { margin: 0; },消除默认外边距对布局的影响。
修复后,<img> 将根据 .accommodation-item 的 max-width: 180px 和自身 width: 180px 正确显示。
浏览器默认样式差异可能导致布局问题,建议在项目初期引入 CSS Reset 或 Normalize.css,统一基础样式。
例如,Normalize.css 会重置 <figure> 的默认外边距,避免手动修复。
使用 box-sizing: border-box 确保边框和内边距不增加元素总宽度。
结合 Flexbox 或 Grid 布局时,注意父容器宽度限制对子元素的影响。