mizzo
mizzo

Reputation: 97

Fill height of a div over 100%

I'm trying this code:

The HTML:

<div id="cnt">
  <div id="left">
  I'm left
  </div>

  <div id="right">
  I'm right
  <br><br><br><br><br><br><br><br><br>
  <br><br><br><br><br><br><br><br><br>
  <br><br><br><br><br><br><br><br><br>
  <br><br><br><br><br><br><br><br><br>
  <br><br><br><br><br><br><br><br><br>
  <br><br><br><br><br><br><br><br><br>
  <br><br><br><br><br><br><br><br><br>
  <br><br><br><br><br><br><br><br><br>
  <br><br><br><br><br><br><br><br><br>
  <br><br><br><br><br><br><br><br><br>
  <br><br><br><br><br><br><br><br><br>
  <br><br><br><br><br><br><br><br><br>
  <br><br><br><br><br><br><br><br><br>
  <br><br><br><br><br><br><br><br><br>
  </div>
</div>

The CSS:

html,body,#cnt{
  height:100%;
}
#left {
  background: #990000;
  float: left;
  width: 100px;
  height: 100%;
}

#right {
  margine-left: 100px;
  background: #009900;
}

The question: How do I make left DIV to stretch in height as the right DIV stretches?

Consider the <br>s as dynamic content, that may grow, for example.

Thanks

Upvotes: 2

Views: 48

Answers (1)

Michael Coker
Michael Coker

Reputation: 53674

You can use flex on the parent, then flex-grow: 1 on the right side so it fills the available space. By default, the left/right columns in this flex row will be the same height.

(btw, you misspelled margin-right on #right)

body {margin:0;}
#cnt {
  /* use min-height if you want the content to be at least the window height;
  /* min-height: 100vh; */
  display: flex;
}
#cnt {
  display: flex;
}
#left {
  background: #990000;
}

#right {
  flex-grow: 1;
  background: #009900;
}
<div id="cnt">
  <div id="left">
  I'm left
  </div>

  <div id="right">
  I'm right
  <br><br><br><br><br><br><br><br><br>
  <br><br><br><br><br><br><br><br><br>
  <br><br><br><br><br><br><br><br><br>
  <br><br><br><br><br><br><br><br><br>
  <br><br><br><br><br><br><br><br><br>
  <br><br><br><br><br><br><br><br><br>
  <br><br><br><br><br><br><br><br><br>
  <br><br><br><br><br><br><br><br><br>
  <br><br><br><br><br><br><br><br><br>
  <br><br><br><br><br><br><br><br><br>
  <br><br><br><br><br><br><br><br><br>
  <br><br><br><br><br><br><br><br><br>
  <br><br><br><br><br><br><br><br><br>
  <br><br><br><br><br><br><br><br><br>
  </div>
</div>

Upvotes: 1

Related Questions