You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用CSS百分比设置横幅图片尺寸时元素消失,如何让图片显示并保持屏幕高度10%

解决横幅百分比高度消失的问题

嘿,这个坑我之前踩过!你遇到的问题核心在于CSS百分比高度的计算逻辑:当你给元素设置height: 10%时,它是相对于父元素的高度来计算的,但你的.banner的父元素(<body>和<html>)默认高度是auto——也就是由内部内容撑开的高度,而你的横幅本身没有内容,所以父元素高度为0,10%自然也等于0,横幅就消失了。

给你两个靠谱的解决方案:

方案一:给父元素设置明确高度

先让<html>和<body>撑满整个视口高度,这样.banner的10%就有了参考基准:

/* 先重置html和body的默认样式,确保撑满视口 */
html, body {
  height: 100%;
  margin: 0;
  padding: 0;
}

/* 你的横幅样式保持不变即可 */
.banner{
  background-image:url(img/banner.PNG);
  background-color: rgb(0, 121, 255);
  background-repeat:no-repeat;
  height: 10%;
  width: 100%;
  background-size: 100% 100%;
}

方案二:使用视口单位vh(更简洁)

如果你不想折腾父元素的高度,可以直接用vh单位——1vh等于视口高度的1%,所以10vh就是正好你想要的屏幕高度10%,不需要依赖父元素:

.banner{
  background-image:url(img/banner.PNG);
  background-color: rgb(0, 121, 255);
  background-repeat:no-repeat;
  height: 10vh; /* 直接指定为视口高度的10% */
  width: 100%;
  background-size: 100% 100%;
}

这个方案更直观,而且现代浏览器都支持vh单位,兼容性完全没问题。

内容的提问来源于stack exchange,提问作者Dunmol

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.04.30 04:28:13