--- title: Responsive image mosaic tags: layout expertise: intermediate author: chalarangelo firstSeen: 2020-08-18T17:18:03+03:00 lastUpdated: 2020-12-30T15:37:37+02:00 --- Creates a responsive image mosaic. - Use `display: grid` to create an appropriate responsive grid layout. - Use `grid-row: span 2 / auto` and `grid-column: span 2 / auto` to create items that span two rows or two columns respectively. - Wrap the previous styles into a media query to avoid applying on small screen sizes. ```html
``` ```css .image-mosaic { display: grid; gap: 1rem; grid-template-columns: repeat(auto-fit, minmax(240px, 1fr)); grid-auto-rows: 240px; } .card { display: flex; flex-direction: column; justify-content: center; align-items: center; background: #353535; font-size: 3rem; color: #fff; box-shadow: rgba(3, 8, 20, 0.1) 0px 0.15rem 0.5rem, rgba(2, 8, 20, 0.1) 0px 0.075rem 0.175rem; height: 100%; width: 100%; border-radius: 4px; transition: all 500ms; overflow: hidden; background-size: cover; background-position: center; background-repeat: no-repeat; padding: 0; margin: 0; } @media screen and (min-width: 600px) { .card-tall { grid-row: span 2 / auto; } .card-wide { grid-column: span 2 / auto; } } ```