3

Here is my code:

div{
    float: left;
    width: 30.33%;
    min-width: 150px;
    padding: 6px;
}
<div>
    <h3>title</h3>
    <p> whatever  whatever  whatever  whatever  whatever  whatever  whatever  whatever  whatever  whatever  whatever  whatever 
    </p>
</div>
<div>
    <h3>title</h3>
    <p> whatever  whatever  whatever  whatever  whatever  whatever  whatever  whatever  whatever  whatever  whatever  whatever 
    </p>
</div>
<div>
    <h3>title</h3>
    <p> whatever  whatever  whatever  whatever  whatever  whatever  whatever  whatever  whatever  whatever  whatever  whatever 
    </p>
</div>
<div>
    <h3>title</h3>
    <p> whatever  whatever  whatever  whatever  whatever  whatever  whatever  whatever  whatever  whatever  whatever  whatever 
    </p>
</div>
<div>
    <h3>title</h3>
    <p> whatever  whatever  whatever  whatever  whatever  whatever  whatever  whatever  whatever  whatever  whatever  whatever 
    </p>
</div>
<div>
    <h3>title</h3>
    <p> whatever  whatever  whatever  whatever  whatever  whatever  whatever  whatever  whatever  whatever  whatever  whatever 
    </p>
</div>

See? Everything is arranged and neat. All fine. But when the height of a box getting more than others, the rows will be interwoven (disordered). See:

div{
    float: left;
    width: 30.33%;
    min-width: 150px;
    padding: 6px;
}
<div>
    <h3>title</h3>
    <p> whatever  whatever  whatever  whatever  whatever  whatever  whatever  whatever  whatever  whatever  whatever  whatever 
    </p>
</div>
<div>
    <h3>title</h3>
    <p> whatever  whatever  whatever  whatever  whatever  whatever  whatever  whatever  whatever  whatever  whatever  whatever   whatever   whatever   whatever   whatever   whatever   whatever 
    </p>
</div>
<div>
    <h3>title</h3>
    <p> whatever  whatever  whatever  whatever  whatever  whatever  whatever  whatever  whatever  whatever  whatever  whatever 
    </p>
</div>
<div>
    <h3>title</h3>
    <p> whatever  whatever  whatever  whatever  whatever  whatever  whatever  whatever  whatever  whatever  whatever  whatever 
    </p>
</div>
<div>
    <h3>title</h3>
    <p> whatever  whatever  whatever  whatever  whatever  whatever  whatever  whatever  whatever  whatever  whatever  whatever 
    </p>
</div>
<div>
    <h3>title</h3>
    <p> whatever  whatever  whatever  whatever  whatever  whatever  whatever  whatever  whatever  whatever  whatever  whatever 
    </p>
</div>

How can I keep rows in the same line?

Temani Afif
  • 211,628
  • 17
  • 234
  • 311
Martin AJ
  • 5,689
  • 5
  • 42
  • 92

4 Answers4

3

You can use FlexBox :

.wrapper div {
  width: 30.33%;
  min-width: 150px;
  padding: 6px;
}
.wrapper{
display: flex;
flex-wrap:wrap;
}
<div class="wrapper">
  <div>
    <h3>title</h3>
    <p> whatever whatever whatever whatever whatever whatever whatever whatever whatever whatever whatever whatever
    </p>
  </div>
  <div>
    <h3>title</h3>
    <p> whatever whatever whatever whatever whatever whatever whatever whatever whatever whatever whatever whatever whatever whatever whatever whatever whatever whatever
    </p>
  </div>
  <div>
    <h3>title</h3>
    <p> whatever whatever whatever whatever whatever whatever whatever whatever whatever whatever whatever whatever
    </p>
  </div>
  <div>
    <h3>title</h3>
    <p> whatever whatever whatever whatever whatever whatever whatever whatever whatever whatever whatever whatever
    </p>
  </div>
  <div>
    <h3>title</h3>
    <p> whatever whatever whatever whatever whatever whatever whatever whatever whatever whatever whatever whatever
    </p>
  </div>
  <div>
    <h3>title</h3>
    <p> whatever whatever whatever whatever whatever whatever whatever whatever whatever whatever whatever whatever
    </p>
  </div>
</div>
Syneria Fana
  • 153
  • 12
1

Just add additional div for every row.

Here is an working example

.row {
  clear: both;
}

.row div {
  float: left;
  width: 30.33%;
  min-width: 150px;
  padding: 6px;
}
<div class="row">
  <div>
    <h3>title</h3>
    <p> whatever whatever whatever whatever whatever whatever whatever whatever whatever whatever whatever whatever
    </p>
  </div>
  <div>
    <h3>title</h3>
    <p> whatever whatever whatever whatever whatever whatever whatever whatever whatever whatever whatever whatever whatever whatever whatever whatever whatever whatever
    </p>
  </div>
  <div>
    <h3>title</h3>
    <p> whatever whatever whatever whatever whatever whatever whatever whatever whatever whatever whatever whatever
    </p>
  </div>
</div>
<div class="row">
  <div>
    <h3>title</h3>
    <p> whatever whatever whatever whatever whatever whatever whatever whatever whatever whatever whatever whatever
    </p>
  </div>
  <div>
    <h3>title</h3>
    <p> whatever whatever whatever whatever whatever whatever whatever whatever whatever whatever whatever whatever
    </p>
  </div>
  <div>
    <h3>title</h3>
    <p> whatever whatever whatever whatever whatever whatever whatever whatever whatever whatever whatever whatever
    </p>
  </div>
</div>

You could alternatively use flexbox but it is less supported than float. You can see which browsers are compatible here

Krzysztof Janiszewski
  • 3,630
  • 3
  • 16
  • 35
0

Add display: flex; and flex-wrap: wrap; to any wrapper div around your 33.3% width divs

body {    
display: flex;
flex-wrap: wrap;
}
div{
    float: left;
    width: 30.33%;
    min-width: 150px;
    padding: 6px;
}
<div>
    <h3>title</h3>
    <p> whatever  whatever  whatever  whatever  whatever  whatever  whatever  whatever  whatever  whatever  whatever  whatever 
    </p>
</div>
<div>
    <h3>title</h3>
    <p> whatever  whatever  whatever  whatever  whatever  whatever  whatever  whatever  whatever  whatever  whatever  whatever   whatever   whatever   whatever   whatever   whatever   whatever 
    </p>
</div>
<div>
    <h3>title</h3>
    <p> whatever  whatever  whatever  whatever  whatever  whatever  whatever  whatever  whatever  whatever  whatever  whatever 
    </p>
</div>
<div>
    <h3>title</h3>
    <p> whatever  whatever  whatever  whatever  whatever  whatever  whatever  whatever  whatever  whatever  whatever  whatever 
    </p>
</div>
<div>
    <h3>title</h3>
    <p> whatever  whatever  whatever  whatever  whatever  whatever  whatever  whatever  whatever  whatever  whatever  whatever 
    </p>
</div>
<div>
    <h3>title</h3>
    <p> whatever  whatever  whatever  whatever  whatever  whatever  whatever  whatever  whatever  whatever  whatever  whatever 
    </p>
</div>
Nandita Sharma
  • 12,889
  • 2
  • 20
  • 29
-2

you can either use a table / you can add one more property to you css with height of some fixed height. then this issue will be resolved.

Koushik Reddy U
  • 128
  • 2
  • 14