I'm exploring CSS Grid to see if it can completely replace the need for responsive CSS media queries for my specific use case. I have the following grid container:
.gridContainer {
display: grid;
grid-template-columns: repeat(auto-fit, minmax(250px, 1fr));
padding: 0px 15px;
margin: 0 auto;
grid-row-gap: 20px;
}
The grid container holds three items that initially result in one row and three columns on larger screen sizes:
When I reduce the viewport width such that the three columns are below 250px each, I would like the grid layout to snap to a layout of three rows and one column:
As you reduce the viewport width, there is currently an interim layout where the third item wraps onto a row where it sits by itself, due to the auto-placement algorithm selected:
I would like to bypass this wrapping and only support the initial one-row, three-column layout and the final three-row, one-column layout. Is this possible with CSS Grid only and without the use of media queries?
You may use a mediaquerie and turn your container into a grid once a minimal width is reach : (code option taken since you gave so little infos)
basis example of the idea
div {
padding: 1em;
margin: 1em;
border: dotted tomato;
}
@media (min-width: 780px) {
body {
display: grid;
grid-template-columns: repeat(auto-fit, minmax(250px, 1fr));
padding: 0px 15px;
margin: 0 auto;
grid-row-gap: 20px;
}
}
<div>lorem</div>
<div>lorem</div>
<div>lorem</div>
You can play the snippet in full page mode and resize your browser to check out the behavior.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With