FLEXBOX min-width:min-content/max-width

Ant*_*ald 62 css flexbox

我需要这个:

容器宽度固定宽度,物品在行方向流动并在末端包裹.

每个项目应该是max-width: 400px,应该削减溢出的内容.项目的最小宽度应由内容决定,但:它不应小于200px.

这是我的CSS代码,它没有涵盖"min-content"方面.w3在他们的flexbox工作草案中建议使用min-content,但在我的情况下它似乎不起作用:

.container {
    display: -webkit-flex;
    display: flex;
    -webkit-flex-wrap: wrap;
    flex-wrap: wrap;
}

.container .box {
    -webkit-flex: 1;
    flex: 1;
    min-width: 200px;
    max-width: 400px;
    height: 200px;
    background-color: #fafa00;
    overflow: hidden;
}
Run Code Online (Sandbox Code Playgroud)

和HTML是:

<div class="container">
    <div class="box">
        <table>
            <tr>
                <td>Content</td>
                <td>Content</td>
                <td>Content</td>
            </tr>
        </table>    
    </div>
    <div class="box">
        <table>
            <tr>
                <td>Content</td>
            </tr>
        </table>    
    </div>
    <div class="box">
        <table>
            <tr>
                <td>Content</td>
                <td>Content</td>
            </tr>
        </table>    
    </div>
    [...]
</div>
Run Code Online (Sandbox Code Playgroud)

Ori*_*iol 73

问题是flex: 1集合flex-basis: 0.相反,你需要

.container .box {
  min-width: 200px;
  max-width: 400px;
  flex-basis: auto; /* default value */
  flex-grow: 1;
}
Run Code Online (Sandbox Code Playgroud)

.container {
  display: -webkit-flex;
  display: flex;
  -webkit-flex-wrap: wrap;
  flex-wrap: wrap;
}

.container .box {
  -webkit-flex-grow: 1;
  flex-grow: 1;
  min-width: 100px;
  max-width: 400px;
  height: 200px;
  background-color: #fafa00;
  overflow: hidden;
}
Run Code Online (Sandbox Code Playgroud)
<div class="container">
  <div class="box">
    <table>
      <tr>
        <td>Content</td>
        <td>Content</td>
        <td>Content</td>
      </tr>
    </table>    
  </div>
  <div class="box">
    <table>
      <tr>
        <td>Content</td>
      </tr>
    </table>    
  </div>
  <div class="box">
    <table>
      <tr>
        <td>Content</td>
        <td>Content</td>
      </tr>
    </table>    
  </div>
</div>
Run Code Online (Sandbox Code Playgroud)

  • 该线程很好地解释了 `flex-basis: 0` 和 `flex-basis: auto` 之间的区别:/sf/ask/3046465271/它们的原始大小 (2认同)