【问题标题】:Adding margin to first and last element of a Horizontally scrollling container [duplicate]向水平滚动容器的第一个和最后一个元素添加边距[重复]
【发布时间】:2020-02-19 00:20:04
【问题描述】:

我正在尝试创建一个水平滚动容器。一切正常,但我似乎无法在容器的最后一个元素上产生边距,

这是笔,

https://codepen.io/mercurial_providence/pen/ZEEeGqR

<div class="container">
  <div class="content full-width">
    <div class="item">ITEM</div>
     ...
    <div class="item">ITEM</div>

  </div>
</div>

还有 CSS,

.container{
  width:80%;
  margin-left:9%;
  background:blue;
  height:200px;
  position:absolute;
  .content{
    display:flex;
    flex-direction:row;
    overflow:auto;
  }
  .full-width {
      left: 50%;
      margin-left: -50vw;
      margin-right: -50vw;
      max-width: 100vw;
      position: relative;
      right: 50%;
      width: 100vw;
      > :first-child{
        margin-left: 5vw;
      }
      > :last-child{
        margin-right: 300vw;
      }
    }
}

.item{
  min-height:92px;
  min-width:92px;
  background:cyan;
  margin:4px;
}

【问题讨论】:

    标签: html css sass margin


    【解决方案1】:

    您可以使用此代码

    body {
      margin: 0px;
    }
    
    .container {
      width: 80%;
      margin-left: 9%;
      background: blue;
      height: 200px;
      position: absolute;
    }
    
    .container .content {
      display: flex;
      flex-direction: row;
      overflow: auto;
    }
    
    .container .full-width {
      left: 50%;
      margin-left: -50vw;
      margin-right: -50vw;
      max-width: 100vw;
      position: relative;
      right: 50%;
      width: 100vw;
    }
    
    .item:first-child {
      margin-left: 7vw;
    }
    
    .item:last-child {
      margin-right: 300vw;
    }
    
    .item {
      min-height: 92px;
      min-width: 92px;
      background: cyan;
      margin: 4px;
      padding: 5px;
    }
    <div class="container">
      <div class="content full-width">
        <div class="item">ITEM</div>
        <div class="item">ITEM</div>
        <div class="item">ITEM</div>
        <div class="item">ITEM</div>
        <div class="item">ITEM</div>
        <div class="item">ITEM</div>
        <div class="item">ITEM</div>
        <div class="item">ITEM</div>
        <div class="item">ITEM</div>
        <div class="item">ITEM</div>
        <div class="item">ITEM</div>
        <div class="item">ITEM</div>
        <div class="item">ITEM</div>
        <div class="item">ITEM</div>
        <div class="item">ITEM</div>
        <div class="item">ITEM</div>
        <div class="item">ITEM</div>
        <div class="item">ITEM</div>
        <div class="item">ITEM</div>
        <div class="item">ITEM</div>
        <div class="item">ITEM</div>
        <div class="item">ITEM</div>
        <div class="item">ITEM</div>
        <div class="item">ITEM</div>
        <div class="item">ITEM</div>
        <div class="item">ITEM</div>
        <div class="item">ITEM</div>
      </div>
    </div>

    【讨论】:

      【解决方案2】:

      您的保证金应用于最后一个孩子的计算问题。如果您在 DOM 中看到,最后一个孩子的 margin-right 为 300vw。 如果没有 jQuery,就不可能计算每个项目的宽度并将其放在父元素上。

      var cal_width = 0;
      jQuery('.full-width .item').each(function($){
        var o_width = jQuery(this).outerWidth(true);
        cal_width = cal_width + o_width;
      });
      jQuery('.full-width').css('width', cal_width);
      body{overflow-x: hidden;}
      .container{
        width:80%;
        margin-left:9%;
        background:blue;
        height:200px;
        position:relative;
        }
        .content{
          display:flex;
          flex-direction:row;
        }
        .scroll{
          position: relative;
          margin: 0 -20%;
          padding: 0 20%;
          overflow: auto;
        }
        .full-width {
            position: relative;
            left: 50%;
            margin-left: -50vw;
            margin-right: -50vw;
            right: 50%;
            }
             .full-width > .item:first-child{
              margin-left: 5vw;
            }
              .full-width > .item:last-child{
              margin-right: 10vw;
            }
          
      
      
      .item{
        min-height:92px;
        min-width:92px;
        background:cyan;
        margin:4px;
      }
      <script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
      <div class="container">
        <div class="scroll">
        <div class="content full-width">
          <div class="item">ITEM</div>
          <div class="item">ITEM</div>
          <div class="item">ITEM</div>
          <div class="item">ITEM</div>
          <div class="item">ITEM</div>
          <div class="item">ITEM</div>
          <div class="item">ITEM</div>
          <div class="item">ITEM</div>
          <div class="item">ITEM</div>
          <div class="item">ITEM</div>
          <div class="item">ITEM</div>
          <div class="item">ITEM</div>
          <div class="item">ITEM</div>
          <div class="item">ITEM</div>
          <div class="item">ITEM</div>
          <div class="item">ITEM</div>
          <div class="item">ITEM</div>
          <div class="item">ITEM</div>
          <div class="item">ITEM</div>
          <div class="item">ITEM</div>
          <div class="item">ITEM</div>
          <div class="item">ITEM</div>
          <div class="item">ITEM</div>
          <div class="item">ITEM</div>
          <div class="item">ITEM</div>
          <div class="item">ITEM</div>
          <div class="item">ITEM</div>
          
        </div>
        </div>
      </div>

      【讨论】:

        猜你喜欢
        • 2019-06-22
        • 2016-08-28
        • 2013-07-29
        • 2015-06-17
        • 1970-01-01
        • 1970-01-01
        • 2020-05-20
        • 2015-07-28
        • 2023-03-18
        相关资源
        最近更新 更多