html - 当 parent 有滚动条时,位置绝对正确

标签 html css

我希望 green 元素保持在其父容器(orange)的绝对正确位置。但如果使用水平滚动,它就不起作用。我究竟做错了什么?如何让 green 元素始终在正确的位置?

* {
  box-sizing: border-box;
}

.outer {
  position: relative;
  padding: 10px;
  border: solid 1px black;
  background-color: orange;
  width: 400px;
  height: 200px;
  overflow: scroll;
}

.stay-right {
  position: absolute;
  right: 0px;
  top: 0px;
  border: solid 1px black;
  background-color: green;
  width: 20px;
  height: 100%;
}

.inner {
  width: 600px;
}
<div class="outer">
    <div class="stay-right"></div>
    <div class="inner">
        <p>Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua. At vero eos et accusam et justo duo dolores et ea rebum. Stet clita kasd gubergren, no sea takimata sanctus est Lorem ipsum dolor sit amet. Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua. At vero eos et accusam et justo duo dolores et ea rebum. Stet clita kasd gubergren, no sea takimata sanctus est Lorem ipsum dolor sit amet.</p>
    </div>
</div>

最佳答案

您需要另一个容器,其中绿色条将在滚动容器之外。

但是有一件事是我手动降低了绿色条的高度使其不与水平滚动条重叠,可能需要再看一遍。

* {
      box-sizing: border-box;
    }

    .outer-main{
      display: inline-block;
      position: relative;
    }

    .outer {
      position: relative;
      padding: 10px;
      border: solid 1px black;
      background-color: orange;
      width: 400px;
      height: 200px;
      overflow-x: scroll;
      overflow-y: hidden;
    }

    .stay-right {
      position: absolute;
      right: -19px;
      top: 0px;
      border: solid 1px black;
      background-color: green;
      width: 20px;
      height:100%;
      z-index: 1
    }

    .inner {
      width: 600px;
    }
  <div class="outer-main">
    <div class="stay-right"></div>
    <div class="outer">
      <div class="inner">
        <p>Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua. At vero eos et accusam et justo duo dolores et ea rebum. Stet clita kasd gubergren, no sea takimata sanctus est Lorem ipsum dolor sit amet. Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua. At vero eos et accusam et justo duo dolores et ea rebum. Stet clita kasd gubergren, no sea takimata sanctus est Lorem ipsum dolor sit amet.
        </p>
      </div>
    </div>
  </div>

关于html - 当 parent 有滚动条时,位置绝对正确,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44542219/

相关文章:

jquery - 使用 jq 更改垂直滚动的背景颜色

html - 这个导航栏和边框怎么做?

html - 如何使用CSS在列上设置自动最小宽度?

html - 每次悬停在它上面时如何重新加载 "CSS background-image"?

css - IE8 中的 Bootstrap 文本输入

css - 如何更改 BootsFaces 中的对齐方式?需要导航栏的最后一个链接到右上角

html - 使 3 个 span 恰好填满一行

javascript - 轮播下一个和上一个按钮不起作用

单击时 JavaScript/HTML 图像发生变化

html - 设置输入文本框大小的替代方法?