With the CSS Grid Layout Module soon shipping in Firefox and Chrome, I thought that I'd try to get a handle of how to use it.
I've tried to create a simple grid with one item a
spanning the left side of all of the rows, with the other items (b
, c
, d
, e
, etc.) spanning the right side of individual rows. The amount of items spanning the right side of the rows is variable, so there might be any combination of b
, c
, d
, e
, etc., so I'm using the grid-auto-rows
property. As such, I cannot define a fixed number of rows for a
to span, but I would like a
to span all available rows.
#container { display: grid; grid-auto-flow: column; grid-auto-rows: auto; grid-template-columns: [left] 4rem [right] 1fr; margin: 0rem auto; max-width: 32rem; } #a { background: lightgreen; grid-column: left; grid-row: 1 / auto; justify-self: center; } #b { grid-area: auto / right; background: yellow; } #c { grid-area: auto / right; background: pink; } #d { grid-area: auto / right; background: lightskyblue; } #e { background: plum; grid-area: auto / right; }
<div id="container"> <div id="a">a</div> <div id="b">b</div> <div id="c">c</div> <div id="d">d</div> <div id="e">e</div> </div>
What should I do to make a
span all rows without knowing how many rows there will end up being?
Note: The grid-column property is a shorthand property for the grid-column-start and the grid-column-end properties. To place an item, you can refer to line numbers, or use the keyword "span" to define how many columns the item will span.
Default value is '100%' .
I had the same situation and found a clean solution.
Instead of using a huge row span value, try:
grid-column: 1/-1;
As negative number counts from the right, this code specifies the grid-column
to the end of the last column.
Note: In case this doesn't apply, check Jonny Green's solution in the below comment.
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