Flexbox响应能力3列

时间:2018-02-08 17:32:50

标签: html css css3 flexbox

我制作了一个使用flexbox练习的页面。它有1个红色容器和3个柔性物品。当我最小化屏幕时,项目会相互下降,但不会耗尽容器的整个宽度。

我怎样才能做到这一点?



.container {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  align-content: stretch;
  margin: 40px;
  background-color: red;
}

.col {
  max-width: 400px;
}

.one,
.two-a,
.two-b,
.three {
  background-color: black;
  color: white;
  padding: 20px;
  margin: 1rem;
}

h2,
h3 {
  font-family: arial;
}

h2 {
  margin-left: 2rem;
}

<div class="container">
  <!-- <h2>Flexbox</h2> -->

  <div class="one col">
    <h3>Step 1</h3>
    <p>Lorem ipsum dolor sit amet, consectetur adipiscing elit. Mauris eget dui ut justo auctor semper a ullamcorper justo. Morbi placerat tortor tortor, ac dignissim leo semper ac. Donec non metus sit amet neque eleifend rhoncus vitae id dolor. Etiam vestibulum
      lobortis sem semper laoreet. Vestibulum egestas elit sed lacus egestas, placerat congue erat faucibus. Nunc ac dui auctor, fermentum turpis ac, mattis magna. Nulla pellentesque, ligula vel faucibus imperdiet, arcu ligula ornare quam, et blandit
      risus sem sit amet neque. Curabitur commodo dui et metus suscipit, ut dignissim risus hendrerit. Quisque at odio nec risus condimentum ullamcorper. Nulla sit amet felis sit amet neque aliquet auctor sed nec metus. Sed gravida mattis sem, nec finibus
      diam suscipit sit amet.</p>
  </div>
  <div class="two col">
    <div class="two-a">
      <h3>Step 2a</h3>
      <p>Lorem ipsum dolor sit amet, consectetur adipiscing elit. Mauris eget dui ut justo auctor semper a ullamcorper justo. Morbi placerat tortor tortor, ac dignissim leo semper ac. Donec non metus sit amet neque eleifend rhoncus vitae id dolor. Etiam
        vestibulum lobortis sem semper laoreet. Vestibulum egestas elit sed lacus egestas, placerat congue erat faucibus. Nunc ac dui auctor, fermentum turpis ac, mattis magna. Nulla pellentesque, ligula vel faucibus imperdiet, arcu ligula ornare quam,
        et blandit risus sem sit amet neque. Curabitur commodo dui et metus suscipit, ut dignissim risus hendrerit. Quisque at odio nec risus condimentum ullamcorper. Nulla sit amet felis sit amet neque aliquet auctor sed nec metus. Sed gravida mattis
        sem, nec finibus diam suscipit sit amet.</p>
    </div>
    <div class="two-b">
      <h3>Step 2b</h3>
      <p>Lorem ipsum dolor sit amet, consectetur adipiscing elit. Mauris eget dui ut justo auctor semper a ullamcorper justo. Morbi placerat tortor tortor, ac dignissim leo semper ac. Donec non metus sit amet neque eleifend rhoncus vitae id dolor. Etiam
        vestibulum lobortis sem semper laoreet. Vestibulum egestas elit sed lacus egestas, placerat congue erat faucibus. Nunc ac dui auctor, fermentum turpis ac, mattis magna. Nulla pellentesque, ligula vel faucibus imperdiet, arcu ligula ornare quam,
        et blandit risus sem sit amet neque. Curabitur commodo dui et metus suscipit, ut dignissim risus hendrerit. Quisque at odio nec risus condimentum ullamcorper. Nulla sit amet felis sit amet neque aliquet auctor sed nec metus. Sed gravida mattis
        sem, nec finibus diam suscipit sit amet.</p>
    </div>
  </div>
  <div class="three col">
    <h3>Step 3</h3>
    <p>Lorem ipsum dolor sit amet, consectetur adipiscing elit. Mauris eget dui ut justo auctor semper a ullamcorper justo. Morbi placerat tortor tortor, ac dignissim leo semper ac. Donec non metus sit amet neque eleifend rhoncus vitae id dolor. Etiam vestibulum
      lobortis sem semper laoreet. Vestibulum egestas elit sed lacus egestas, placerat congue erat faucibus. Nunc ac dui auctor, fermentum turpis ac, mattis magna. Nulla pellentesque, ligula vel faucibus imperdiet, arcu ligula ornare quam, et blandit
      risus sem sit amet neque. Curabitur commodo dui et metus suscipit, ut dignissim risus hendrerit. Quisque at odio nec risus condimentum ullamcorper. Nulla sit amet felis sit amet neque aliquet auctor sed nec metus. Sed gravida mattis sem, nec finibus
      diam suscipit sit amet.</p>
    <p>Lorem ipsum dolor sit amet, consectetur adipiscing elit. Mauris eget dui ut justo auctor semper a ullamcorper justo. Morbi placerat tortor tortor, ac dignissim leo semper ac. Donec non metus sit amet neque eleifend rhoncus vitae id dolor. Etiam vestibulum
      lobortis sem semper laoreet. Vestibulum egestas elit sed lacus egestas, placerat congue erat faucibus. Nunc ac dui auctor, fermentum turpis ac, mattis magna. Nulla pellentesque, ligula vel faucibus imperdiet, arcu ligula ornare quam, et blandit
      risus sem sit amet neque. Curabitur commodo dui et metus suscipit, ut dignissim risus hendrerit. Quisque at odio nec risus condimentum ullamcorper. Nulla sit amet felis sit amet neque aliquet auctor sed nec metus. Sed gravida mattis sem, nec finibus
      diam suscipit sit amet.</p>
  </div>
</div>
&#13;
&#13;
&#13;

https://codepen.io/cian-w/pen/EQZmRz

1 个答案:

答案 0 :(得分:0)

您有一个限制弹性项目宽度的规则:

.col {
    max-width: 400px;
}

因此,项目无法填充容器的整个宽度,因为它们无法扩展到400px以上。试试这个:

.col {
    flex: 1 0 400px;
}

这个速记声明分解为:

  • flex-grow: 1
  • flex-shrink: 0
  • flex-basis: 400px

revised codepen