html - 内容全宽,仅在固定高度侧边栏之后

标签 html css

我正在尝试实现与此类似的布局:

Example layout to achieve

地点:

  • 每个内容 block 中都有多个元素
  • 内容 block 和侧边栏高度可变
  • 不使用javascript

我得到的最接近的是这个(但请注意侧边栏结束之前的文章如何占用比预期更多的空间,并且第 3 篇文章中的按钮占据了页面的 100%,而文章的其余内容占用更少) :

.page {
  width: 1000px;
  margin: auto;
}

.sidebar {
  float: right;
  width: 300px;
  height: 410px;
  background: red;
}

.content {
  padding-right: 20px;
}

article {
  background: #cdcdcd;
  padding: 15px;
  margin-bottom: 20px;
  
  h3 { margin: 0; }
}

.buttons {
  display: flex;
  justify-content: space-between;
}
<div class="page">
  <div class="sidebar"></div>
  <div class="content">
    <article>
      <h3>Lorem, ipsum dolor.</h3>
      <p>Lorem ipsum dolor sit amet consectetur adipisicing elit. Eos non nostrum distinctio officia aliquid maxime doloremque harum id consequuntur quo.</p>
      <div class="buttons">
        <button>btn1</button>
        <button>btn2</button>
      </div>
    </article>
    <article>
      <h3>Lorem, ipsum dolor.</h3>
      <p>Lorem ipsum dolor sit amet consectetur adipisicing elit. Eos non nostrum distinctio officia aliquid maxime doloremque harum id consequuntur quo.</p>
      <div class="buttons">
        <button>btn1</button>
        <button>btn2</button>
      </div>
    </article>
    <article>
      <h3>Lorem, ipsum dolor.</h3>
      <p>Lorem ipsum dolor sit amet consectetur adipisicing elit. Eos non nostrum distinctio officia aliquid maxime doloremque harum id consequuntur quo.</p>
      <div class="buttons">
        <button>btn1</button>
        <button>btn2</button>
      </div>
    </article>
    <article>
      <h3>Lorem, ipsum dolor.</h3>
      <p>Lorem ipsum dolor sit amet consectetur adipisicing elit. Eos non nostrum distinctio officia aliquid maxime doloremque harum id consequuntur quo.</p>
      <div class="buttons">
        <button>btn1</button>
        <button>btn2</button>
      </div>
    </article>
    <article>
      <h3>Lorem, ipsum dolor.</h3>
      <p>Lorem ipsum dolor sit amet consectetur adipisicing elit. Eos non nostrum distinctio officia aliquid maxime doloremque harum id consequuntur quo.</p>
      <div class="buttons">
        <button>btn1</button>
        <button>btn2</button>
      </div>
    </article>
    <article>
      <h3>Lorem, ipsum dolor.</h3>
      <p>Lorem ipsum dolor sit amet consectetur adipisicing elit. Eos non nostrum distinctio officia aliquid maxime doloremque harum id consequuntur quo.</p>
      <div class="buttons">
        <button>btn1</button>
        <button>btn2</button>
      </div>
    </article>
  </div>
</div>

如果我不清楚,请告诉我。

最佳答案

您需要为前 3 个文章 div 定义宽度。

.page {
  width: 1000px;
  margin: auto;
}

.sidebar {
  float: right;
  width: 300px;
  height: 527px;
  background: red;
}

.content {
  padding-right: 20px;
}

article {
  background: #cdcdcd;
  padding: 15px;
  margin-bottom: 20px;
  
  h3 { margin: 0; }
}

.buttons {
  display: flex;
  justify-content: space-between;
}
.small-box-content{
    width: 67%;
    display: inline-block;
}
<div class="page">
  <div class="sidebar"></div>
  <div class="content">
    <article class="small-box-content">
      <h3>Lorem, ipsum dolor.</h3>
      <p>Lorem ipsum dolor sit amet consectetur adipisicing elit. Eos non nostrum distinctio officia aliquid maxime doloremque harum id consequuntur quo.</p>
      <div class="buttons">
        <button>btn1</button>
        <button>btn2</button>
      </div>
    </article>
    <article class="small-box-content">
      <h3>Lorem, ipsum dolor.</h3>
      <p>Lorem ipsum dolor sit amet consectetur adipisicing elit. Eos non nostrum distinctio officia aliquid maxime doloremque harum id consequuntur quo.</p>
      <div class="buttons">
        <button>btn1</button>
        <button>btn2</button>
      </div>
    </article>
    <article class="small-box-content">
      <h3>Lorem, ipsum dolor.</h3>
      <p>Lorem ipsum dolor sit amet consectetur adipisicing elit. Eos non nostrum distinctio officia aliquid maxime doloremque harum id consequuntur quo.</p>
      <div class="buttons">
        <button>btn1</button>
        <button>btn2</button>
      </div>
    </article>
    <article>
      <h3>Lorem, ipsum dolor.</h3>
      <p>Lorem ipsum dolor sit amet consectetur adipisicing elit. Eos non nostrum distinctio officia aliquid maxime doloremque harum id consequuntur quo.</p>
      <div class="buttons">
        <button>btn1</button>
        <button>btn2</button>
      </div>
    </article>
    <article>
      <h3>Lorem, ipsum dolor.</h3>
      <p>Lorem ipsum dolor sit amet consectetur adipisicing elit. Eos non nostrum distinctio officia aliquid maxime doloremque harum id consequuntur quo.</p>
      <div class="buttons">
        <button>btn1</button>
        <button>btn2</button>
      </div>
    </article>
    <article>
      <h3>Lorem, ipsum dolor.</h3>
      <p>Lorem ipsum dolor sit amet consectetur adipisicing elit. Eos non nostrum distinctio officia aliquid maxime doloremque harum id consequuntur quo.</p>
      <div class="buttons">
        <button>btn1</button>
        <button>btn2</button>
      </div>
    </article>
  </div>
</div>

关于html - 内容全宽,仅在固定高度侧边栏之后,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48899367/

相关文章:

php - 下载由PHP中的多个文件组成的Zip文件

jquery - Bootstrap 切换按钮不起作用

javascript - 分离和附加 div 作为 jquery 中的对话框

html - IE9+ 中的负边距底部允许滚动太远

javascript - 将类名从 div 移动到 div

css - 如何设置菜单按钮和菜单项的样式

javascript - 图片 "jumps"进入网格?如何停止跳跃效果?

html - HTML 的 ffmpeg 编码

html - 具有相同类的两个元素在 Firefox 中看起来不同

css - 在流体网格的侧边距中显示 100% 宽图像?