【问题标题】:CSS floating 2 column layout with multiple elements具有多个元素的 CSS 浮动 2 列布局
【发布时间】:2018-10-18 21:19:58
【问题描述】:

我想使用四个 div 创建一个简单的两列布局。我受到限制,无法修改 HTML 结构。我只能修改 CSS。

我希望右列中的第二个 div 直接位于前一个右列 div 的下方。现在,它推到左第二个 div 的顶部。

现在这是我在 HTML 中所拥有的:

<div id="parent">
    <div class="left">
        Left 1
    </div>
    <div class="right">
        Right 1
    </div>
    <div class="left">
        Left 2
    </div>
    <div class="right">
        Right 2
    </div>
</div>

CSS:

.left {
  height: 400px;
  width: 60%;
  float: left;
  background-color: red;
  display: block;
}
.right {

  width: 30%;
  float: right;
  background-color: green;
   display: block;
}

看我的小提琴:http://jsfiddle.net/Lun61g7a/2/

【问题讨论】:

  • 我仔细看了看,实际上可以修改父级的 CSS,但不幸的是,我无法为每个列创建单独的 div。我会修改我的问题以反映这一点。
  • 所以我被一个封装这一切的单亲所困,实际上只能修改 CSS,而不是 HTML

标签: html css css-float


【解决方案1】:

使用flexbox 并在需要时允许元素移动到下一个“行”

#parent {
  display: flex;
  flex-wrap: wrap;
}

.left {
  height: 400px;
  width: 60%;
  background-color: red;
  display: block;
}

.right {
  width: 30%;
  background-color: green;
  display: block;
}
<div id="parent">
  <div class="left">
    Left 1
  </div>
  <div class="right">
    Right 1
  </div>
  <div class="left">
    Left 2
  </div>
  <div class="right">
    Right 2
  </div>
</div>

【讨论】:

  • 这看起来更近了,但我实际上希望第一个右 div 结束于内容的末尾,而第二个右 div 开始于它的正下方。它仍在将第二个右 div 一直向下推
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-11-06
  • 2015-04-23
  • 1970-01-01
  • 2017-01-07
相关资源
最近更新 更多