【问题标题】:Stop fixed block on last element在最后一个元素上停止固定块
【发布时间】:2020-06-10 20:48:31
【问题描述】:

我有以下 sn-p(将 sn-p 作为整页打开):

#container_1{
    margin-top: 50px;
    margin-bottom: 150px;
}

.block1{
    background: green;
    margin-bottom: 15px;
    color: #FFFFFF;
}

#moving_block{
    z-index: 0;
    background-color: purple;
    color: #FFFFFF;
}

#footer{
  background-color: gray;
  height: 5000px;
  color: #FFFFFF;
}
<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap.min.css" integrity="sha384-BVYiiSIFeK1dGmJRAkycuHAHRg32OmUcww7on3RYdg4Va+PmSTsz/K68vbdEjh4u" crossorigin="anonymous">

<div id="container_1" class="container">
    <div class="col-md-5 col-md-offset-1">
        <div class="row block1">
            <div class="col-md-8">
                <p>TEXT</p>
            </div>
        </div>
        <div class="row block1">
            <div class="col-md-8">
                <p>TEXT</p>
            </div>
        </div>
        <div class="row block1">
            <div class="col-md-8">
                <p>TEXT</p>
            </div>
        </div>
        <div class="row block1">
            <div class="col-md-8">
                <p>TEXT</p>
            </div>
        </div>
        <div class="row block1">
            <div class="col-md-8">
                <p>TEXT</p>
            </div>
        </div>
    </div>
    <div class="col-md-4">
        <div id="moving_block" class="col-md-3 affix">
            <div class="row">
                <p>TEXT</p>
            </div>
         </div>
    </div>
</div>

<section id="footer">
MY FOOTER
</section>

当他遇到最后一个绿色块时,我想阻止紫色块。

【问题讨论】:

    标签: html css twitter-bootstrap-3


    【解决方案1】:

    这可以使用position:sticky 来完成。

    我为此考虑使用 bootstrap V4,因为有内置的粘性功能。我还简化了代码,只保留演示的相关代码:

    #container_1 {
      margin-top: 50px;
      margin-bottom: 150px;
    }
    
    .block1 {
      background: green;
      color: #FFFFFF;
    }
    .block1:not(:last-child) {
      margin-bottom: 15px;
    }
    
    #moving_block {
      background-color: purple;
      color: #FFFFFF;
    }
    
    #footer {
      background-color: gray;
      height: 5000px;
      color: #FFFFFF;
    }
    <link href="https://stackpath.bootstrapcdn.com/bootstrap/4.5.0/css/bootstrap.min.css" rel="stylesheet">
    <div id="container_1" class="container">
      <div class="row">
        <div class="col-5 col-offset-1">
          <div class="row block1">
              <p>TEXT</p>
          </div>
          <div class="row block1">
              <p>TEXT</p>
          </div>
          <div class="row block1">
              <p>TEXT</p>
          </div>
          <div class="row block1">
              <p>TEXT</p>
          </div>
          <div class="row block1">
              <p>TEXT</p>
          </div>
        </div>
        <div class="col-6">
          <div id="moving_block" class="overflow-auto position-sticky sticky-top">
              <p>TEXT</p>
          </div>
        </div>
      </div>
    </div>
    
    <section id="footer">
      MY FOOTER
    </section>

    【讨论】:

    • 感谢您的回复,但是如何使紫色向下移动而不触及顶部(滚动)?
    • @executable 而不是使用 sticky-top 手动添加您想要的值,例如 top:40px
    • 嘿,你能解释一下这部分的目的吗? .block1:not(:last-child) { margin-bottom: 15px; }
    • @executable 为所有元素保留边距(除了最后一个元素),以便粘性将准确地停止在最后一个元素所在的位置
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-04-24
    • 2011-08-31
    相关资源
    最近更新 更多