How to Create a grid which has 4 cards Grid with responsive view?

Posted By: Rimjhim Jain Published: 14, Jan 2024

How to Create a grid which has 4 cards Grid with responsive view?


Create a grid which has 4 cards. Each card has a thumbnail image, title and a description. Grid should be responsive for the following viewports: >= 320px (one column), >= 768px (two column), >= 1200px (four column)


Step 1) Add HTML:

<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Grid of 4 cards</title>
</head>

<body>
    <div class="row">
        <div class="column">
            <div class="card">
                <img src="https://thenazariyafoundation.org/image/image_nazariya/cache/catalog/demo/product/IMG_1666-507x360.PNG">
                <h2>Title of my card</h2>
                <p>Description of my card.</p>
            </div>
        </div>
        <div class="column">
            <div class="card">
                <img
                    src="https://thenazariyafoundation.org/image/image_nazariya/cache/catalog/demo/product/IMG_1666-507x360.PNG">
                <h2>Title of my card</h2>
                <p>Description of my card.</p>
            </div>
        </div>
        <div class="column">
            <div class="card">
                <img
                    src="https://thenazariyafoundation.org/image/image_nazariya/cache/catalog/demo/product/IMG_1666-507x360.PNG">
                <h2>Title of my card</h2>
                <p>Description of my card.</p>
            </div>
        </div>
        <div class="column">
            <div class="card">
                <img
                    src="https://thenazariyafoundation.org/image/image_nazariya/cache/catalog/demo/product/IMG_1666-507x360.PNG">
                <h2>Title of my card</h2>
                <p>Description of my card.</p>
            </div>
        </div>
    </div>
</body>

</html>

Step 2) Add CSS:

 <style>
   .row{
         display: flex;
         flex-direction: row;
         flex-wrap: wrap;
         padding-left: 1em;
         padding-right: 1em;
     }
     .column{
         flex-basis:25%;
         
     }
    .card{
        margin: 10px;
        border-style: ridge;
    }
     .card img{
         width: 100%;
         margin: auto;
         display: block;
     }

    
     @media screen and (max-width:1199px) {

            .column {
                flex-basis: 50%;
            }
        }

        @media screen and (max-width:767px) {
        
            .column {
                flex-basis: 100%;
            }
        }
</style>

#Note: CSS can be added to HTML documents in 3 ways:

  • Inline - by using the style attribute inside HTML elements
  • Internal - by using a style element in the head section
  • External - by using a link element to link to an external CSS file

Output Screenshots:

For viewports >= 1200px (four column).
WebView Cards


For viewports >= 768px (two column).
TabletView Cards


For viewports >= 320px (one column).
mobileView Cards



Get in Touch

Let’s Discuss Your Project in Details


Let’s explore your project in detail, focusing on key elements like goals, audience, features, and timelines to set you up for success.