First-child full-width in Flexbox

Sajad picture Sajad · Jan 22, 2017 · Viewed 78.9k times · Source

How can I set the first-child of flexbox in full-width and all of the other childs set to flex:1(for split space)?

Like this:

enter image description here

Answer

TheYaXxE picture TheYaXxE · Jan 22, 2017

You can set the :first-child to a width of 100%, and the rest of the childs :not(:first-child) to flex: 1. To put them on multiplelines, use flex-wrap: wrap on the container:

.container {
  display: flex;
  justify-content: space-between;
  flex-wrap: wrap;
  background: #e2eaf4;
  padding: 10px;
}

.child {
  display: inline-block;
  font-family: "Open Sans", Arial;
  font-size: 20px;
  color: #FFF;
  text-align: center;
  background: #3794fe;
  border-radius: 6px;
  padding: 20px;
  margin: 12px;
}

.child:first-child {
  width: 100%;
}

.child:not(:first-child) {
  flex: 1;
}
<div class="container">
  <div class="child">Child</div>
  <div class="child">Child</div>
  <div class="child">Child</div>
</div>