Home > Web Front-end > CSS Tutorial > How can I create a masonry grid with CSS Grid Layout where each element has the same width but the bottom element is always 50px below the top element?

How can I create a masonry grid with CSS Grid Layout where each element has the same width but the bottom element is always 50px below the top element?

Linda Hamilton
Release: 2024-11-17 11:35:02
Original
428 people have browsed it

How can I create a masonry grid with CSS Grid Layout where each element has the same width but the bottom element is always 50px below the top element?

Create a Masonry Grid with CSS Grid Layout (or Other CSS)

The question asks for a way to achieve a masonry grid effect in CSS with elements of varying heights, where each element is the same width but the bottom element is always 50px below the top element. The user attempted to use floats and Flexbox but encountered issues.

Using CSS Grid Layout

A solution is to use CSS Grid Layout, which provides a powerful and flexible way to create grids. The following CSS code demonstrates how to achieve the desired effect:

grid-container {
  display: grid;             /* Enables the grid layout */
  grid-auto-rows: 50px;      /* Defines the height of each row to 50px */
  grid-gap: 10px;            /* Sets the gap between the grid items */
  grid-template-columns: repeat(auto-fill, minmax(30%, 1fr)); /* Defines the columns to have a minimum width of 30% */
}

[short] {
  grid-row: span 1;         /* Makes the element span only one row */
  background-color: green;
}

[tall] {
  grid-row: span 2;         /* Makes the element span two rows */
  background-color: crimson;
}

[taller] {
  grid-row: span 3;         /* Makes the element span three rows */
  background-color: blue;
}

[tallest] {
  grid-row: span 4;         /* Makes the element span four rows */
  background-color: gray;
}
Copy after login

The HTML code to use this layout is as follows:

<grid-container>
  <grid-item short></grid-item>
  <grid-item short></grid-item>
  <grid-item tall></grid-item>
  <grid-item tall></grid-item>
  <grid-item short></grid-item>
  <grid-item taller></grid-item>
  <grid-item short></grid-item>
  <grid-item tallest></grid-item>
  <grid-item tall></grid-item>
  <grid-item short></grid-item>
  <grid-item tallest></grid-item>
  <grid-item tall></grid-item>
  <grid-item taller></grid-item>
  <grid-item short></grid-item>
  <grid-item short></grid-item>
  <grid-item short></grid-item>
  <grid-item short></grid-item>
  <grid-item tall></grid-item>
  <grid-item short></grid-item>
  <grid-item taller></grid-item>
  <grid-item short></grid-item>
  <grid-item tall></grid-item>
  <grid-item short></grid-item>
  <grid-item tall></grid-item>
  <grid-item short></grid-item>
  <grid-item short></grid-item>
  <grid-item tallest></grid-item>
  <grid-item taller></grid-item>
  <grid-item short></grid-item>
  <grid-item tallest></grid-item>
  <grid-item tall></grid-item>
  <grid-item short></grid-item>
</grid-container>
Copy after login

With this code, you can achieve a masonry grid effect with elements of varying heights, arranged in a consistent and responsive manner.

The above is the detailed content of How can I create a masonry grid with CSS Grid Layout where each element has the same width but the bottom element is always 50px below the top element?. For more information, please follow other related articles on the PHP Chinese website!

source:php.cn
Statement of this Website
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn
Latest Articles by Author
Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template