1

In my page I have a header, main area (map) and right side panel. I need main area 80% and sidepanel 20% with display flex , but cant restrict the overflow. Don't want to give overflow:hidden property.

enter image description here

Here is my code,

* {
  box-sizing: border-box;
  padding: 0;
  margin: 0;
}


.wrapper{
    width: 100%;
    height: 100%;
}

.container{
    display: flex;    
}

.header{
    margin: 0;
    padding: 0;
    text-align: center;
    background-color: gray;
    color: #FFF;
}

.mainsection{
    background-color: #ddd;
    width: 80%;
    height: 100vh;
}

.sidepanel{
    background-color: #eee;
    width:20%;
    height: 100vh;
}
<div>


  <div class="header">
    <header>
      <h1 class="">
        Urban Map
      </h1>
    </header>
  </div>

  <div class="container">
    <div class="mainsection">
     <P>
 Lorem, ipsum dolor sit amet consectetur adipisicing elit. Doloremque, natus. Excepturi, quasi perferendis? Eum impedit unde, vel tempore recusandae accusantium, quibusdam quo et, iure maxime nulla cumque est in cupiditate?
 Lorem ipsum dolor sit amet consectetur adipisicing elit. Excepturi accusamus, quasi omnis eaque delectus repudiandae deleniti commodi debitis earum pariatur esse recusandae vitae cumque a, impedit maiores vero. Quibusdam, at?
</P>
    </div>
    <div class="sidepanel">
      <div >
  <P>
   Lorem ipsum dolor sit amet consectetur adipisicing elit. Saepe quibusdam necessitatibus inventore, molestias voluptates facilis quod eius optio dignissimos culpa, reprehenderit quas, impedit reiciendis facere ipsam ab nemo expedita tempore!
  </P>
<P>
 Lorem ipsum dolor sit amet consectetur adipisicing elit. Saepe deserunt nulla modi aliquam iure perspiciatis at perferendis itaque temporibus, quod fugiat, id facilis similique minus. Dignissimos cumque deserunt aspernatur nostrum!

  </P>

</div>
    </div>




  </div>
</div>

I need to give map section and sidepanel with full height without overflow.

Michael Benjamin
  • 346,931
  • 104
  • 581
  • 701
AhammadaliPK
  • 3,448
  • 4
  • 21
  • 39

1 Answers1

1

Use flex on the primary container to set the heights of the children.

Don't set height: 100vh on .mainsection and .sidepanel, as that doesn't account for the header, which results in an overflow.

#primary-container {
  display: flex;
  flex-direction: column;
  height: 100vh;
}

.container {
  flex: 1 0 80vh;
  display: flex;
}

.header {
  margin: 0;
  padding: 0;
  text-align: center;
  background-color: gray;
  color: #FFF;
}

.mainsection {
  background-color: #ddd;
  width: 80%;
  /* height: 100vh; */
}

.sidepanel {
  background-color: #eee;
  width: 20%;
  /* height: 100vh; */
}


/* ?? */
.wrapper {
  width: 100%;
  height: 100%;
}

* {
  box-sizing: border-box;
  padding: 0;
  margin: 0;
}
<div id="primary-container">
  <div class="header">
    <header>
      <h1 class="">
        Urban Map
      </h1>
    </header>
  </div>
  <div class="container">
    <div class="mainsection">
      <P>
        Lorem, ipsum dolor sit amet consectetur adipisicing elit. Doloremque, natus. Excepturi, quasi perferendis? Eum impedit unde, vel tempore recusandae accusantium, quibusdam quo et, iure maxime nulla cumque est in cupiditate? Lorem ipsum dolor sit amet consectetur
        adipisicing elit. Excepturi accusamus, quasi omnis eaque delectus repudiandae deleniti commodi debitis earum pariatur esse recusandae vitae cumque a, impedit maiores vero. Quibusdam, at?
      </P>
    </div>
    <div class="sidepanel">
      <div>
        <P>
          Lorem ipsum dolor sit amet consectetur adipisicing elit. Saepe quibusdam necessitatibus inventore, molestias voluptates facilis quod eius optio dignissimos culpa, reprehenderit quas, impedit reiciendis facere ipsam ab nemo expedita tempore!
        </P>
        <P>
          Lorem ipsum dolor sit amet consectetur adipisicing elit. Saepe deserunt nulla modi aliquam iure perspiciatis at perferendis itaque temporibus, quod fugiat, id facilis similique minus. Dignissimos cumque deserunt aspernatur nostrum!
        </P>
      </div>
    </div>
  </div>
</div>
Michael Benjamin
  • 346,931
  • 104
  • 581
  • 701