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>
  <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>
<div class="w3r-container">
    Max: 25% / Min: 150px

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:


and set the divs to the min-height:

div {
    min-height: 300px;

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