CSS grid-column-start Property

Beginner
5 min read
Updated: Oct 2026
3 examples
Live preview

Definition and Usage

The grid-column-start property sets where a grid item begins horizontally. You pick a column line number, a span, a named line, or auto.

It works on grid items inside a display: grid container. Pair it with grid-column-end, or use the grid-column shorthand for both edges.

Baseline · Widely available.

Not deprecated and not experimental. Grid line 0 is invalid — lines start at 1 (or negative from the end).

CSS Syntax

syntax.css
grid-column-start: auto | <integer> | span <integer> | <custom-ident> | initial | inherit;

The initial value is auto. Integers may be negative to count from the end of the explicit grid.

Property Values

ValueDescriptionTry it
<integer>Start at that column line (e.g. 2)Try it
span <integer>Start edge is n lines before the end edgeTry it
autoAuto-placement / default span of 1. Initial valueTry it
Negative lineCount from the end; -2 starts the last columnTry it
initialResets to autoTry it
inheritUses the parent’s grid-column-startTry it

How to Use grid-column-start

Create columns, then tell one item which line to start on.

  1. Build a grid with display: grid and grid-template-columns.
  2. Remember lines: three columns create lines 1, 2, 3, and 4.
  3. Set grid-column-start on the item (a line number or span).
  4. Optionally set grid-column-end, or use grid-column shorthand.
PieceRequired?Role
Grid containerYesdisplay: grid with column tracks
Grid itemYesThe child you are placing
Start valueYesLine number, span, name, or auto
End / spanOptionalControls how far the item stretches

Live Preview

Three equal columns. Change only grid-column-start on the highlighted item.

Lines: 1 | col | 2 | col | 3 | col | 4. -2 is the start of the last column; -1 is the end edge.

Grid

grid-column-start: 2

CSS Examples

Each snippet focuses on grid-column-start. Use Try It Yourself for a live editor.

Example 1 — Start at Line 2

Place the item so its left edge sits on column line 2.

CSS
<style>
  .grid {
    display: grid;
    grid-template-columns: 1fr 1fr 1fr;
    gap: 8px;
  }
  .item {
    grid-column-start: 2;
  }
</style>

<div class="grid">
  <div class="item">Item</div>
  <div>A</div><div>B</div>
</div>
Try It Yourself

How It Works

  1. Create three columns. That makes lines 1–4 across the grid.
  2. Target the item. Only the highlighted child gets the placement rule.
  3. Start on line 2. The item begins at the left edge of the middle column.
  4. Default end. With end left as auto, the item spans one column.

Example 2 — span 2

Stretch the item across two columns from its start edge.

CSS
<style>
  .grid {
    display: grid;
    grid-template-columns: 1fr 1fr 1fr;
    gap: 8px;
  }
  .item {
    grid-column-start: span 2;
  }
</style>

<div class="grid">
  <div class="item">Wide</div>
  <div>A</div>
</div>
Try It Yourself

How It Works

  1. Use span syntax. span 2 means the start is two lines before the end.
  2. Auto end. Placement still fills two column tracks.
  3. Auto-placement. The item usually lands in the first free cells that fit the span.
  4. Same idea on end. You can also write grid-column-end: span 2 with a fixed start.

Example 3 — Negative Line

Count from the end: -2 is the start of the last column.

CSS
<style>
  .grid {
    display: grid;
    grid-template-columns: 1fr 1fr 1fr;
    gap: 8px;
  }
  .item {
    grid-column-start: -2;
  }
</style>

<div class="grid">
  <div>A</div><div>B</div>
  <div class="item">End</div>
</div>
Try It Yourself

How It Works

  1. Count backward. On a 3-column grid, -1 is the end edge; -2 is the start of the last track.
  2. Pin to the last column. -2 with a default span of 1 fills that last column.
  3. Useful pattern. Stay correct even if you later add more columns.
  4. Remember: 0 is invalid; use 1 or a negative integer.

Edge Cases & Pitfalls

If placement looks wrong, check these first.

lines

Lines ≠ columns

Three columns create four lines. grid-column-start: 2 starts at the second line, not “column index 2” in every mental model.

zero

Line 0 is invalid

Use 1 or higher, or a negative integer from the end. Zero is discarded.

shorthand

grid-column can overwrite start

Writing grid-column after grid-column-start replaces both edges. Put the longhand last, or include the start in the shorthand.

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.

Browser Support

grid-column-start is a browser CSS property for Grid item placement. Node.js, Deno, and Bun do not apply it.

✓ Baseline · Widely available

grid-column-start

Chrome 57+, Edge 16+, Firefox 52+, Safari 10.1+. Internet Explorer needs older -ms- Grid syntax.

97% Modern browser support
Google Chrome 57+
Full support
Mozilla Firefox 52+
Full support
Apple Safari 10.1+
Full support
Microsoft Edge 16+
Full support
Opera 44+
Full support
Samsung Internet 6+
Full support
Internet Explorer No (use -ms- Grid)
Not supported
grid-column-start Widely 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.

Key Takeaways

  • Role: set the starting column line (or span) of a grid item.
  • Lines vs tracks: n columns → n+1 lines; start at 1.
  • Shorthand: grid-column sets start and end together.
  • Initial value: auto. Not inherited.

One line: grid-column-start: 2; parks the item’s start edge on column line 2.

Frequently Asked Questions

It sets where a grid item begins horizontally by choosing a column line, a span, or auto-placement.
The initial value is auto. The grid auto-placement algorithm chooses the start line, usually with a span of 1.
The item’s start edge sits on column line 2 — the left edge of the second column track in a left-to-right grid.
grid-column-start: span 2 makes the item’s start edge two column lines before its end edge, so the item spans two columns when the end is auto.
grid-column-start sets only the start. grid-column is the shorthand for both grid-column-start and grid-column-end.
It is Baseline Widely available. Chrome 57+, Edge 16+, Firefox 52+, Safari 10.1+, and modern Opera support it. Internet Explorer needs the older -ms- prefixed Grid. It is a browser CSS property, not a Node.js feature.

Next: grid-gap

Review the legacy gap shorthand used with older Grid examples.

grid-gap tutorial →

About the author

Mari Selvan M P
Mari Selvan M P 🔗

Developer, cloud engineer, and technical writer

  • Experience 12 years building web and cloud systems
  • Focus Full Stack Development, AWS, and Developer Education

I write practical tutorials so students and working developers can learn by doing—from databases and APIs to deployment on AWS.

8 people found this page helpful