-
Notifications
You must be signed in to change notification settings - Fork 710
[css-grid] Flow multiple elements together into same grid area #1183
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Comments
I'm not 100% sure of what you want to do, but you would probably find it useful to play with the span keyword and possibly also |
@fantasai Sorry, if I was not clear enough. I want to get rid of the gap between I don't know in advance if content of some cell will be wrapped, it's dynamic |
From what I can tell, you want to be able to flow multiple elements into the same cell; right now, they're going in separate cells, and each "row" of the narrow-screen layout is actually several grid rows. Your "gap" is the result of the "Desc" and "Label 3" data both going in the same grid row, and since the "Desc" sometimes has much more content, it stretches the grid row, making the "Label 3" cell tall as well. This isn't possible in current Grid. Sometimes, a combination of wrapper Ultimately you want CSS Regions, or a Regions-lite functionality. This was discussed for Grid, and earlier versions of the spec had it, but it was eventually removed for complexity reasons. Hopefully it'll show up in Grid 2. |
Thanks for answer, @tabatkins! |
Reopening and tagging for Grid 2, just to help keep track of the feature request. |
Is that objection still relevant though?
|
Pinging this issue because the major blocker (Blink not being capable of doing this in its previous layout engine) shouldn't be an issue any longer - now that Blink's Grid impl is on LayoutNG (as of Chrome/Edge 93), it should be possible to do. @bfgeek, want to confirm that this should be possible now? |
Almost possible - but not quite yet for us - still working on our fragmentation engine. |
I am watching @stubbornella's talk from CSS Day 2024 right now, and the first thing I thought when I saw this layout... ...was that I would really like to accomplish this with regular Grid layout (even though she was proposing a way to solve it with Masonry), by placing elements 2 & 4 in the same cell (but somehow rendering one after the other instead of overlapping) and 3 & 5 together in another cell. Very simplistic proposal to make that possible: a new .grid {
grid-template-areas:
"header header"
"main sidebar"
"footer footer";
}
.grid::grid-area(main), .grid::grid-area(sidebar) {
display: block; /* or flex with flex-direction: column */
}
.banner, .content {
grid-area: main;
}
.secondary-nav, .ads {
grid-area: sidebar;
} I'm sure this is much easier said than done, especially because I can't think of anything like that in CSS right now. But if there's a chance it could be technically possible, I feel like it would solve the problem elegantly. |
I would also need this, it makes responsive design vastly more flexible if i can merge grid areas into grid regions for media queries or template area |
Using CSS Grid is very convenient to do responsive table with vertically stacked columns like https://hashnode.com/post/really-responsive-tables-using-css3-flexbox-cijzbxd8n00pwvm53sl4l42cx#advanced-example
You can see example using Grid here: http://codepen.io/klimashkin/pen/peXPXY
But when content of some cells on not last row is wrapped into several lines, other cells in the same row become the same height. And we have vertical gaps between cells on different rows (LabelX columns):
It's understandable because of

I couldn't find workaround for that using grid properties (align-self, min-content, etc), and I don't know if it's even possible with CSS GRID to move cells upper. Is it?
The text was updated successfully, but these errors were encountered: