css - flex-box 如何在多个 flex-rows 的右侧有一个静态固定列?

标签 css flexbox

https://codepen.io/leongaban/pen/xrdwRw

目前 CSS 正在生成这个: enter image description here

我想要实现的是这个,flex-box 仍然可以工作,并且不使用 floats with don't work with flex-container enter image description here

标记

<div>
  <div class="dashboard">
    <ul class="flex-container">
      <li class="flex-item">1</li>
      <li class="flex-item">2</li>
      <li class="flex-item">3</li>
      <li class="flex-item">4</li>
      <li class="flex-item">5</li>
      <li class="flex-item">6</li>
    </ul>
    <ul class="flex-container">
      <li class="flex-item">1</li>
      <li class="flex-item">2</li>
      <li class="flex-item">3</li>
      <li class="flex-item">4</li>
      <li class="flex-item">5</li>
      <li class="flex-item">6</li>
    </ul>
  </div>

  <div class="col">

  </div>
</div>

CSS

@import "compass/css3";
// .dashboard { float: left; }
.col {
  float: right;
  width: 300px;
  height: 600px;
  background: orange;
}

.flex-container {
  display: -webkit-box;
  display: -moz-box;
  display: -ms-flexbox;
  display: -webkit-flex;
  display: flex;
  -webkit-flex-flow: row wrap;
  justify-content: space-around;
}

.flex-item {
  background: tomato;
  padding: 5px;
  width: 200px;
  height: 150px;
  margin-top: 10px;

  line-height: 150px;
  color: white;
  font-weight: bold;
  font-size: 3em;
  text-align: center;
}

最佳答案

使外部 div 成为 flex 容器(并从 .col 中删除 float)

CSS

.flex-outer {
  display: flex;
}

HTML

<div class="flex-outer">
  ....
</div>

已更新

根据评论,我更新了我的答案,清理了代码并使用了适当的 flex 属性。

此外,由于没有在 flex 元素规则上设置前缀属性,我将它们从 flex 容器规则中删除,因为如果在两个地方都没有设置它们将不会执行任何操作。

堆栈片段

@import "compass/css3";
.flex-outer {
  display: flex;
}

.dashboard {
  flex-grow: 1;
}
.col {
  margin-left: 25px;
  flex-basis: 300px;
  background: orange;
}

.flex-container {
  display: flex;
  justify-content: space-around;
}
.flex-item {
  flex: 1 1 200px;
  background: tomato;
  padding: 5px;
  height: 150px;
  margin-top: 10px;
  color: white;
  font-weight: bold;
  font-size: 3em;
  display: flex;
  justify-content: center;
  align-items: center;
}
<div class="flex-outer">
  <div class="dashboard">
    <ul class="flex-container">
      <li class="flex-item">1</li>
      <li class="flex-item">2</li>
      <li class="flex-item">3</li>
      <li class="flex-item">4</li>
      <li class="flex-item">5</li>
      <li class="flex-item">6</li>
    </ul>
    <ul class="flex-container">
      <li class="flex-item">1</li>
      <li class="flex-item">2</li>
      <li class="flex-item">3</li>
      <li class="flex-item">4</li>
      <li class="flex-item">5</li>
      <li class="flex-item">6</li>
    </ul>
  </div>

  <div class="col">

  </div>
</div>

关于css - flex-box 如何在多个 flex-rows 的右侧有一个静态固定列?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44654445/

相关文章:

javascript - 如何优化无缝图像网格? CSS 还是 Jquery?图像优化?

css - 三分区/两列布局 - 可以使用 Flexbox 吗?

html - 在 IE11 上换行的 Flex 方向列问题

html - Flexbox 布局 - 过渡不起作用

css - 使 flex 元素包裹在列方向容器中

html - Flexbox - 显示 : flex - My contents appear in one line

css - HTML - 优先使用 CSS 样式

javascript - 使用动态颜色向图例添加标签

javascript - 具有网格布局的砌体画廊

html - Bootstrap 水平形式不起作用