Alexey Tseitlin
Alexey Tseitlin

Reputation: 1309

floated blocks fall under

How to stop float blocks from collapsing? They fall down... I do not want to set a specific height, because this is not convenient.

I need a float solution. Not flex. With flex it would be super easy =)

.block {
  position: relative;
  background: lightblue;
  border: 3px solid #5fb3ce;
  padding: 15px;
  width: 40%;
  float: left;
  margin: 2px;
}

ul {
  margin: 0;
  padding: 0;
}

li {
  list-style: none;
}
<ul class="parent">
  <li class="block">
    <p>fadsfa sd fa sdfasd fasdsd fasd fa</p>
  </li>
  <li class="block">
    <p>fadsfa sd sdfasd fasdfads fa sdfasd fasdfads fa sdfasd fasfasd fasdfads fa sdfasd fasfasd fasdsd fasd fa</p>

  </li>

  <li class="block">
    <p>fadsfa sd sdfasd fasdfads fa sdfasd fasdfads fa sdfasd fasfasd fasdfads fa sdfasd fasfasd fasdsd fasd fa</p>

  </li>

  <li class="block">
    <p>ads fa sdfasd fasfasd fasdfads fa sdfasd fasfasd fasdsd fasd fa</p>

  </li>

  <li class="block">
    <p>fadsfa sd sdfasd fasdfads fa sdfasd fasdfads fa sdfasd fasfasd fasdfads fa sdfasd fasfasd fasdsd fasd fa</p>

  </li>

  <li class="block">
    <p>fadsfa sd sdfasd fasdfads fa sdfasd fasdfads fa sdfasd fasfasd fasdfads fa sdfasd fasfasd fasdsd fasd fa</p>

  </li>

</ul>

Upvotes: 0

Views: 53

Answers (2)

Pablo Recalde
Pablo Recalde

Reputation: 3571

EDIT

If you care about the width instead of the height, you might want to create different "column" containers of that fixed width, float them left, and use javascript to distribute your "blocks" among them, so you would get a result like this:

 
.column {
  width: 40%;
  float:left;
}
.block {
  background: lightblue;
  border: 3px solid #5fb3ce;
  padding: 15px;
  margin: 2px;
}

.parent {
  margin: 0;
  padding: 0;
}
<div class="parent">
  <section class="column">
    <article class="block">
      <p>fadsfa sd assasa sasdf aasdf fa sdfasd fasdsd fasd fa</p>
    </article >
    <article class="block">
      <p>fadsfa sd sdfasd fasdfads fa sdfasd fasdfads fa sdfasd fasfasd fasdfads fa sdfasd fasfasd fasdsd fasd fa</p>

    </article >

    <article class="block">
      <p>fadsfa sd sdfasd fasdfads fa sdfasd fasdfads fa sdfasd fasfasd fasdfads fa sdfasd fasfasd fasdsd fasd fa</p>

    </article >
  </section>
  <section class="column">
    <article class="block">
      <p>ads fa sdfasd fasfasd fasdfads faasdfasdfasdf asdfasdf asdf asdfasdf  sdfasd fasfasd fasdsd fasd fa</p>

    </article >

    <article class="block">
      <p>fadsfa sd sdfasd fasdfads fa sdfasd fasdfads fa sdfasd fasfasd fasdfads fa sdfasd fasfasd fasdsd fasd fa</p>

    </article >

    <article class="block">
      <p>fadsfa sd sdfasd fasdfads fa sdfasd fasdfads fa sdfasd fasfasd fasdfads fa sdfasd fasfasd fasdsd fasd fa</p>

    </article >

  </section>
</div>

Upvotes: 1

Kiran Dash
Kiran Dash

Reputation: 4956

I guess what your issue here is that you want to clear every odd child and do not want it to be same height. So the easiest solution while using float will be to just clear left every odd child with (2n+1) selector.

.block {
  position: relative;
  background: lightblue;
  border: 3px solid #5fb3ce;
  padding: 15px;
  width: 40%;
  float: left;
  margin: 2px;
}

ul {
  margin: 0;
  padding: 0;
}
ul>li:nth-child(2n+1){
  clear: left;
}

li {
  list-style: none;
}
<ul class="parent">
  <li class="block">
    <p>fadsfa sd fa sdfasd fasdsd fasd fa</p>
  </li>
  <li class="block">
    <p>fadsfa sd sdfasd fasdfads fa sdfasd fasdfads fa sdfasd fasfasd fasdfads fa sdfasd fasfasd fasdsd fasd fa</p>

  </li>

  <li class="block">
    <p>fadsfa sd sdfasd fasdfads fa sdfasd fasdfads fa sdfasd fasfasd fasdfads fa sdfasd fasfasd fasdsd fasd fa</p>

  </li>

  <li class="block">
    <p>ads fa sdfasd fasfasd fasdfads fa sdfasd fasfasd fasdsd fasd fa</p>

  </li>

  <li class="block">
    <p>fadsfa sd sdfasd fasdfads fa sdfasd fasdfads fa sdfasd fasfasd fasdfads fa sdfasd fasfasd fasdsd fasd fa</p>

  </li>

  <li class="block">
    <p>fadsfa sd sdfasd fasdfads fa sdfasd fasdfads fa sdfasd fasfasd fasdfads fa sdfasd fasfasd fasdsd fasd fa</p>

  </li>

</ul>

Upvotes: 0

Related Questions