0

I have used css grid to create a flexible layout, where I am able to move divs into different slots from desktop to mobile.

The issue I am having is if the content in my left div is long then the right div matches its height resulting in a large gap underneath the div on the right. I have a screenshot to demonstrate.

Divs 5 and 6, need to be kept together close. However, I also need to keep the flexiblity i have for mobile where i am using grid-template-areas to move sections around within a media query.

How can I keep divs 5 and 6 close without the gap and keep current bahaviour?

enter image description here

.grid-container {
  display: grid;
  grid-template-columns: 6fr 4fr;
  gap: 2rem;
  grid-template-areas:
    "section1 section5"
    "section2 section6"
    "section3 ."
    "section4 .";

  @media (max-width: 768px) {
    grid-template-columns: 1fr;
    grid-template-areas:
      "section1"
      "section5"
      "section2"
      "section6"
      "section3"
      "section4";
  }
}

.content-section {
  background: #eee;
  border: 1px solid #ccc;
  padding: 1rem;

  grid-area: $ {
    ({
      area
    })=>area
}

;
align-self: start;
}
<div class="grid-container">
  <div class="content-section" area="section1" title="Overview">
    <p>long content</p>
    <p>long content</p>
    <p>long content</p>
    <p>long content</p>
    <p>long content</p>
    <p>long content</p>
    <p>long content</p>
    <p>long content</p>
    <p>long content</p>
  </div>
  <div class="content-section" area="section2">2</div>
  <div class="content-section" area="section3">3</div>
  <div class="content-section" area="section4">4</div>
  <div class="content-section" area="section5">5</div>
  <div class="content-section" area="section6">6</div>
</div>

2
  • What's this? grid-area: $ { ({ area })=>area } ; Commented Jul 2 at 20:19
  • That's the way css-grid works. Commented Jul 2 at 20:30

0

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.