The grid-row property is the shorthand for grid-row-start and grid-row-end. It sets where a grid item begins and ends vertically by choosing row lines, a span, or auto.
Pin the start. Line 2 is the top of the second row track.
Use -1 for the end. Negative lines count from the end of the explicit grid.
Useful pattern. Stay correct even if you later add more rows.
Remember:0 is invalid; use 1 or a negative integer.
Edge Cases & Pitfalls
If placement looks wrong, check these first.
lines
Lines ≠ rows
Three rows create four lines. grid-row: 1 / 3 ends at the third line, covering two tracks — not “row index 3”.
zero
Line 0 is invalid
Use 1 or higher, or a negative integer from the end. Zero is discarded.
shorthand
grid-area can overwrite row
Writing grid-area after grid-row can reset all four edges. Put the more specific rule last, or include the row in grid-area.
container
Only works on grid items
The parent must be a grid (or the item absolutely positioned against a grid). On a block parent, the property has no effect.
overlap
Items can share cells
Explicit placement can stack items in the same area. That is allowed — use it on purpose, or adjust lines to avoid surprise overlaps.
Compatibility
Browser Support
grid-row is a browser CSS property for Grid item placement. Node.js, Deno, and Bun do not apply it.
✓ Baseline · Widely available
grid-row
Chrome 57+, Edge 16+, Firefox 52+, Safari 10.1+. Internet Explorer needs older -ms- Grid syntax.
97%Modern browser support
Google Chrome57+
Full support
Mozilla Firefox52+
Full support
Apple Safari10.1+
Full support
Microsoft Edge16+
Full support
Opera44+
Full support
Samsung Internet6+
Full support
Internet ExplorerNo (use -ms- Grid)
Not supported
grid-rowWidely supported
Bottom line: Safe for modern Grid layouts. Prefer standard Grid over legacy -ms- prefixes except when you must support Internet Explorer. It is not a runtime API.
Remember
Key Takeaways
Role: shorthand for grid-row-start and grid-row-end.
Lines vs tracks: n rows → n+1 lines; 1 / 3 spans two rows.
Slash syntax: start before /, end after.
Initial value:auto / auto. Not inherited.
One line:grid-row: 1 / 3; parks the item from row line 1 to line 3.
Frequently Asked Questions
It is the shorthand for grid-row-start and grid-row-end. It sets where a grid item begins and ends vertically along the row axis.
Both longhands default to auto. The item is auto-placed and usually spans one row.
The item starts at row line 1 and ends at row line 3, so it covers two row tracks.
It spans two rows. With auto placement, the item usually fills the next free cells that fit that height.
grid-row sets only the row edges. grid-area can set all four edges, or assign a named grid area.
It is Baseline Widely available. Chrome 57+, Edge 16+, Firefox 52+, Safari 10.1+, and modern Opera support it. Internet Explorer needs older -ms- Grid. It is a browser CSS property, not a Node.js feature.