
当标题区域宽度小于200px时,通过媒体查询基于视口宽度间接控制图片显隐,因`.title`固定占父容器33%,故视口≤600px时其宽度必≤200px。
在纯 CSS 环境下,无法直接监听某个元素(如 .title)的实时宽度变化——CSS 本身没有“元素级媒体查询”或 @container(旧版)之外的响应式容器查询能力(注:现代 @container 已支持,但需配合 container-type 声明,且浏览器兼容性需考量)。
你当前的布局中,.entry .title 使用了固定百分比宽度(width: 33%),且无其他弹性约束,因此它的实际宽度完全取决于其父容器(即 .entry)的宽度;而 .entry 的宽度又通常由其祖先块级元素或视口决定。若 .entry 直接撑满视口(常见情况),那么:
.title 宽度 ≈ 33% × viewport width
要使 .title 宽度 0.33 × viewportWidth
为简化并确保兼容性,取整为 600px 是合理且安全的阈值。
✅ 推荐方案(广泛兼容):
/* 当视口宽度 ≤ 600px 时,隐藏整个 .title 区域(含图片) */
@media screen and (max-width: 600px) {
.entry .title {
display: none;
}
}⚠️ 注意事项:
- 此方案假设 .entry 的宽度与视口强相关(如未设置 max-width、未嵌套在窄 sidebar 中等)。若 .entry 自身被限制在更小容器内(例如 max-width: 400px),则需按实际父宽重新计算阈值:max-width: (200 ÷ 0.33) ≈ 606px → 对应父容器临界宽度。
- 若仅想隐藏
而保留文字内容,可精确选择:
@media screen and (max-width: 600px) { .entry .title img { display: none; } } - ✨ 进阶替代(现代方案):若需真正基于 .title 自身尺寸响应,可启用 CSS Container Queries(Chrome 105+、Firefox 119+、Safari 16.4+ 支持):
.entry .title { container-type: inline-size; /* 启用容器查询 */ } @container (width < 200px) { .entry .title img { display: none; } }但需注意:需确保 .title 的父元素(即 .entry)未阻止容器查询传播,且项目对旧浏览器兼容性要求不高。
总结:在主流兼容性优先的前提下,使用 @media (max-width: 600px) 是简洁、可靠、零 JS 的解决方案;若追求语义精准且目标环境支持,容器查询是未来标准方向。










