w3resource

HTML-CSS: Responsive layout with sidebar

HTML-CSS : Exercise-35 with Solution

Using HTML, CSS creates a responsive layout with a content area and a sidebar.

  • Use display: grid on the parent container, to create a grid layout.
  • Use minmax() for the second column (sidebar) to allow it to take up between 150px and 20%.
  • Use 1fr for the first column (main content) to take up the rest of the remaining space.

HTML Code:

<!--License: https://bit.ly/3GjrtVF-->
<!DOCTYPE html>
<html>
<head>
  <meta charset="utf-8">
  <meta name="viewport" content="width=device-width">
  <title>Using HTML, CSS creates a responsive layout with a content area and a sidebar.</title>
</head>
<body>
<div class="w3r-container">
  <main>
    w3resource.com
  </main>
  <aside>
    Max: 25% / Min: 150px
  </aside>
</div>
</body>
</html>

CSS Code:

.w3r-container {
  display: grid;
  grid-template-columns: 1fr minmax(25%, 150px);
  height: 100px;
}

main, aside {
  padding: 12px;
  text-align: center;
}

main {
  background: #cc87ff;
}

aside {
  background: #ff78cc;
}

HTML-CSS Editor:

See the Pen html-css-practical-exercises by w3resource (@w3resource) on CodePen.


What is the difficulty level of this exercise?

Test your Programming skills with w3resource's quiz.



Share this Tutorial / Exercise on : Facebook and Twitter

HTML-CSS: Tips of the Day

A min-height for table, tr or td:

It's not a nice solution but try it like this:

<table>
    <tr>
        <td>
            <div>Lorem</div>
        </td>
    </tr>
    <tr>
        <td>
            <div>Ipsum</div>
        </td>
    </tr>
</table>

and set the divs to the min-height:

div {
    min-height: 300px;
} 

Ref: https://bit.ly/3Ovu56J