HTML Academy
Course card, part 3
Flexbox, part 227/28
Back to the list of tasks
  • 1. Flex items and the block model
  • 2. Features of the margin property
  • 3. Alignment and margins
  • 4. The flow direction of the main axis and margins
  • 5. The initial main size of flex item, flex-basis
  • 6. Test: Cubism
  • 7. The item growth factor, flex-grow
  • 8. Growing items proportionally
  • 9. Calculating the total size with flex-grow
  • 10. The item shrinkage factor, flex-shrink
  • 11. Shrinking items proportionally
  • 12. Calculating the total size with flex-shrink
  • 13. flex-shrink and min-width
  • 14. Test: Mastering factors
  • 15. The flex shorthand property
  • 16. Multi-line flex containers and flex-shrink
  • 17. Multi-line flex containers and flex-grow
  • 18. flex-basis: 100% and flex-wrap
  • 19. The heading with description in flexboxes
  • 20. Heading with description, part 2
  • 21. Flexible menu with overflowing content
  • 22. Flexible menu with overflow, part 2
  • 23. Input fields with dynamic width
  • 24. The course card
  • 25. Course card, part 2
  • 26. Course card, part 3
  • 27. So many cards
  • 28. Test: Flexible flows
Test: Flexible flows
  • Sign up
  • Log in

Loading…
Everything will be ready in few seconds

  • Theory
  • Theory
  • Comments

So many cards

During the last step we will work on how to lay out the cards.

Let’s make the cards overflow to a new line if there is not enough space for them in the container. And if there is any free space left over on the line, then that space will be occupied with cards.

We added a special zoom wrapper to see how several cards behave together.

Comments

  • index.html
  • style.css
HTML
<!DOCTYPE html> <html lang="en"> <head> <meta charset="utf-8"> <title>So many cards</title> <link href="course.css" rel="stylesheet"> <link href="style.css" rel="stylesheet"> </head> <body class="subtle"> <div class="zoomer"> <section class="cards"> <article class="card"> <h1 class="card-heading">2D-transformations</h1> <div class="card-meta"> <div class="card-category"> <span class="card-icon icon-tag">Category: </span> <span>HTML, CSS</span> </div> <div class="card-duration"> <span class="card-icon icon-time">Course time: </span> <span>2 hours</span> </div> </div> <div class="card-content"> <figure class="card-figure"> <img class="card-img" src="img/course-2.png" alt="Muffin"> <figcaption> <p>We will learn how to rotate, tilt, move, shrink, and magnify objects, and we will even learn how to blow them up with fireballs.</p> </figcaption> </figure> <button class="card-button">Start course</button> </div> </article> <article class="card"> <h1 class="card-heading">Animation</h1> <div class="card-meta"> <div class="card-category"> <span class="card-icon icon-tag">Category: </span> <span>HTML, CSS</span> </div> <div class="card-duration"> <span class="card-icon icon-time">Course time: </span> <span>2 hours</span> </div> </div> <div class="card-content"> <figure class="card-figure"> <img class="card-img" src="img/course-4.png" alt="Muffin"> <figcaption> <p>The course covers the basics of CSS animation.</p> </figcaption> </figure> <button class="card-button">Start course</button> </div> </article> <article class="card"> <h1 class="card-heading">Smooth transitions</h1> <div class="card-meta"> <div class="card-category"> <span class="card-icon icon-tag">Category: </span> <span>HTML, CSS</span> </div> <div class="card-duration"> <span class="card-icon icon-time">Course time: </span> <span>2 hours</span> </div> </div> <div class="card-content"> <figure class="card-figure"> <img class="card-img" src="img/course-1.png" alt="Muffin"> <figcaption> <p>In this course you will learn how to smoothly change CSS properties, and you will create beautiful and functional items with shapes that are inspired by material design.</p> </figcaption> </figure> <button class="card-button">Start course</button> </div> </article> <article class="card"> <h1 class="card-heading">Workshop</h1> <div class="card-meta"> <div class="card-category"> <span class="card-icon icon-tag">Category: </span> <span>HTML, CSS</span> </div> <div class="card-duration"> <span class="card-icon icon-time">Course time: </span> <span>2 hours</span> </div> </div> <div class="card-content"> <figure class="card-figure"> <img class="card-img" src="img/course-5.png" alt="Muffin"> <figcaption> <p>This is an applied course in which you will create complex interface elements and cool effects.</p> </figcaption> </figure> <button class="card-button">Start course</button> </div> </article> <article class="card"> <h1 class="card-heading">CSS filters</h1> <div class="card-meta"> <div class="card-category"> <span class="card-icon icon-tag">Category: </span> <span>HTML, CSS</span> </div> <div class="card-duration"> <span class="card-icon icon-time">Course time: </span> <span>2 hours</span> </div> </div> <div class="card-content"> <figure class="card-figure"> <img class="card-img" src="img/course-3.png" alt="Muffin"> <figcaption> <p>The course will show you how you can apply filters to various items as well as to combine and animate them.</p> </figcaption> </figure> <button class="card-button">Start course</button> </div> </article> </section> </div> </body> </html>
CSS
.cards { display: flex; margin: 0 auto; width: 1000px; } .card { display: flex; flex-direction: column; margin: 10px; padding: 20px; max-width: 70%; } .card-meta { display: flex; } .card-category { flex-grow: 1; } .card-content { display: flex; flex-grow: 1; flex-direction: column; } .card-img { width: 100%; } .card-button { margin-top: auto; } /* Zoom styles */ .zoomer { position: absolute; top: 0; left: 0; box-sizing: border-box; padding: 20px; width: 200%; transform: scale(0.5); transform-origin: 0 0; }

What didn’t you like in this task?

Thanks! We’ll fix everything at once!

The code has changed, click “Refresh” or turn autorun on.

You’ve gone to a different page

Click inside the mini-browser to shift the focus onto this window.

100%
Goalscompleted
0
    1. Allow flex items to overflow in the .cards block.
    2. Then delete the maximum width from the .card card and assign it the basic size of 300px
    3. and a growth factor of 1.
    4. Then reduce the width of .cards to 700px. Please note how the cards are reconstructed.

    Cookies ∙ Privacy ∙ License Agreement ∙ About ∙ Contacts ∙ © HTML Academy OÜ, 2019−2025

    VISAMastercard

    Log in

    or

    Forgot your password?

    Sign up

    Sign up

    or
    Log in

    Restore access

    Have you forgotten your password or lost access to your profile? Enter your email connected to your profile and we will send you a link to restore access.

    Forgot to connect your email to the profile? Email us and we’ll help.