【问题标题】:Position fixed relative to a block, not to the viewport相对于块固定的位置,而不是视口
【发布时间】:2018-09-17 00:33:08
【问题描述】:

我有 .gridster-item(块绝对定位,宽度和高度固定,并带有溢出自动),在里面我希望红色块(绝对位于右下角)留在他开始的位置,但是当我使用滚动条时,红色块跟随滚动条。

.gridster-item {
    width: 400px;
    height: 200px;
    position: relative;
    overflow: auto;
    background-color: rgb(204, 214, 249);
}

.resizer {
    position: absolute;
    bottom: 0;
    right: 0;
    width: 10px;
    height: 10px;
    background-color: red;
}
<!DOCTYPE html>
<html>
<head>
    <meta charset="utf-8" />
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <title>Page Title</title>
    <meta name="viewport" content="width=device-width, initial-scale=1">
    
</head>
<body>
    <div class="gridster-item">
        <div class="content">
            <p>Lorem Ipsun dolor amet</p>
            <p>Lorem Ipsun dolor amet</p>
            <p>Lorem Ipsun dolor amet</p>
            <p>Lorem Ipsun dolor amet</p>
            <p>Lorem Ipsun dolor amet</p>
            <p>Lorem Ipsun dolor amet</p>
            <p>Lorem Ipsun dolor amet</p>
            <p>Lorem Ipsun dolor amet</p>
            <p>Lorem Ipsun dolor amet</p>
            <p>Lorem Ipsun dolor amet</p>
            <p>Lorem Ipsun dolor amet</p>
            <p>Lorem Ipsun dolor amet</p>
            <p>Lorem Ipsun dolor amet</p>
            <p>Lorem Ipsun dolor amet</p>
            <p>Lorem Ipsun dolor amet</p>
            <p>Lorem Ipsun dolor amet</p>
            <p>Lorem Ipsun dolor amet</p>
        </div>
        <div class="resizer"></div>
    </div>
</body>
</html>

【问题讨论】:

    标签: html css position css-position


    【解决方案1】:

    您需要使用带有position: relative包装器,以便绝对定位 元素将相对 定位到它而不是受滚动 div 的影响:

    #wrapper {
      display: inline-block; /* or "inline-flex" which also only takes the content's width */
      position: relative;
    }
    
    .gridster-item {
      width: 400px;
      height: 200px;
      /*position: relative;*/
      overflow: auto;
      background-color: rgb(204, 214, 249);
    }
    
    .resizer {
      position: absolute;
      bottom: 0;
      right: 17px; /* 17px because that's a typical width of the scrollbar */
      width: 10px;
      height: 10px;
      background-color: red;
    }
    <div id="wrapper">
      <div class="gridster-item">
        <div class="content">
          <p>Lorem Ipsun dolor amet</p>
          <p>Lorem Ipsun dolor amet</p>
          <p>Lorem Ipsun dolor amet</p>
          <p>Lorem Ipsun dolor amet</p>
          <p>Lorem Ipsun dolor amet</p>
          <p>Lorem Ipsun dolor amet</p>
          <p>Lorem Ipsun dolor amet</p>
          <p>Lorem Ipsun dolor amet</p>
          <p>Lorem Ipsun dolor amet</p>
          <p>Lorem Ipsun dolor amet</p>
          <p>Lorem Ipsun dolor amet</p>
          <p>Lorem Ipsun dolor amet</p>
          <p>Lorem Ipsun dolor amet</p>
          <p>Lorem Ipsun dolor amet</p>
          <p>Lorem Ipsun dolor amet</p>
          <p>Lorem Ipsun dolor amet</p>
          <p>Lorem Ipsun dolor amet</p>
        </div>
        <div class="resizer"></div>
      </div>
    </div>

    【讨论】:

      猜你喜欢
      • 2017-10-30
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-04-20
      • 2018-03-04
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多