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

CSS绝对定位元素随横向滚动消失问题求助

解决横向滚动时背景条纹消失的问题

嘿,这个问题我之前也碰到过!核心原因就是你的.bg元素没覆盖到横向滚动后的区域——毕竟.outer只有300px宽,但.inner有1000px,滚动后超出的部分自然就没条纹了。给你两个实用的解决办法:

方法一:让背景元素匹配滚动内容的宽度

给.bg设置绝对定位,并且把宽度设成和.inner一样的1000px,这样它就能覆盖整个滚动区域了:

.outer {
  width: 300px;
  height: 200px;
  overflow-x: scroll;
  overflow-y: hidden;
  border: 1px solid black;
  position: relative;
}
.inner {
  width: 1000px;
  height: 200px;
}
.bg {
  position: absolute;
  top: 0;
  left: 0;
  width: 1000px; /* 和.inner宽度保持一致 */
  height: 100%;
  /* 示例条纹背景,你可以换成自己的样式 */
  background: repeating-linear-gradient(
    45deg,
    #f0f0f0,
    #f0f0f0 10px,
    #ffffff 10px,
    #ffffff 20px
  );
  z-index: -1; /* 把背景放在.inner下方,不遮挡内容 */
}

方法二:直接给容器加滚动绑定的背景(更简洁)

如果不需要单独的.bg元素,直接给.outer设置背景,再加上background-attachment: local属性,就能让背景跟着滚动内容一起移动:

.outer {
  width: 300px;
  height: 200px;
  overflow-x: scroll;
  overflow-y: hidden;
  border: 1px solid black;
  position: relative;
  /* 直接给容器加条纹背景 */
  background: repeating-linear-gradient(
    45deg,
    #f0f0f0,
    #f0f0f0 10px,
    #ffffff 10px,
    #ffffff 20px
  );
  background-attachment: local; /* 关键:让背景跟随滚动内容 */
}
.inner {
  width: 1000px;
  height: 200px;
}

这种方法可以直接去掉.bg元素,代码更清爽。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.26 11:06:59