Selector or pseudo-class · data last changed 10 Nov 2026
:nth-child in email clients
Works in 6 of 21. Not supported in Gmail, Gmail Android, Gmail iOS and 11 more. Untested in Superhuman.
Your reader in Outlook Classic sees the email without :nth-child, even if it looks right where you tested it.
caniemail (MIT) via @emailens/engine 0.18.22
What to do instead in Outlook Classic
Decide the position when the email is built, not when it is read. Most templating languages give a loop index, so write the stripe straight onto the row: style="background-color:#f6f6f6" on every other <tr>, or the bgcolor attribute on its cells for Outlook Classic. The same goes for grids: give the last card in each row its own spacing inline. Keep :nth-child() only as a refinement for the clients that support it, never as the thing that makes a table readable.
There is no drop-in fix for :nth-child in Outlook Classic. Design so the email still reads without it.
No signup · Five clients free, Outlook Classic included · All 21 with an account
The checker needs a computer screen.
A free account opens all 21 clients and keeps your checks for 7 days. Create a free account →
Every account includes one free real-device check in classic Outlook, Outlook for Mac and Apple Mail, after you verify your email and run one preview, while this month's free capacity lasts. How real-device checks work →
:nth-child is not among the 24 features we have screenshotted on real installs. The ones we have →
All 21 clients, problems first
| Client | Support |
|---|---|
| Gmail | Not supported |
| Gmail Android | Not supported |
| Gmail iOS | Not supported |
| Outlook 365 | Not supported |
| Outlook (New) | Not supported |
| Outlook Classic | Not supported |
| Outlook iOS | Not supported |
| Outlook Android | Not supported |
| Outlook for Mac | Not supported |
| Yahoo Mail | Not supported See caveat 1 |
| Yahoo Mail Android | Not supported See caveat 1 |
| Yahoo Mail iOS | Not supported See caveat 1 |
| Proton Mail | Not supported |
| AOL Mail | Not supported See caveat 1 |
| Superhuman | Untested |
Works in 6: Apple Mail, Apple Mail iOS, Samsung Mail and 3 more. Show all
| Client | Support |
|---|---|
| Apple Mail | Works |
| Apple Mail iOS | Works |
| Samsung Mail | Works |
| Thunderbird | Works |
| HEY Mail | Works |
| Fastmail | Works |
Caveats (1)
- 1. Yahoo Mail, Yahoo Mail Android, Yahoo Mail iOS, AOL Mail: Not supported. Removes the parenthesis part.
Caveats as recorded by caniemail (MIT), one entry per wording.
How :nth-child behaves
The :nth-child() selector picks elements by their position, which is how a web page stripes table rows or clears every third card. In email it only works in a minority of clients: Apple Mail, Samsung Email, Thunderbird, HEY and Fastmail. Gmail, every Outlook and Yahoo Mail ignore it, so a design that depends on it loses its stripes or its spacing for most readers.
- No Outlook supports :nth-child(): not Outlook Classic, Outlook (New), Outlook 365 or the mobile apps, and not the new Outlook for Mac, which drops the rule (only the legacy Mac app applied it).
- Gmail, on the web and in its apps, does not support it either.
- Yahoo Mail and AOL remove the part in parentheses, so tr:nth-child(2n) arrives as tr:nth-child, a selector that no longer means what was written.
Questions
Does :nth-child work in Outlook?
No. Every current Outlook ignores it, Outlook for Mac included, so set alternating styles inline on each row instead.
How do I stripe table rows in an email without :nth-child?
Generate the stripe in the template: use the loop index to add style="background-color:..." (and bgcolor for Outlook Classic) to every other row. That works in every client.
Your next question
- Does :adjacent-sibling work in Outlook Classic?
Works in 16 of 21 · partial in 2 · not supported in 2 · 1 untested
- Does :child-combinator work in Outlook Classic?
Works in 16 of 21 · partial in 2 · not supported in 2 · 1 untested
- Does :general-sibling work in Outlook Classic?
Works in 16 of 21 · partial in 2 · not supported in 2 · 1 untested
- Does :universal-selector work in Outlook Classic?
Works in 16 of 21 · partial in 2 · not supported in 2 · 1 untested
- Does :chaining work in Outlook Classic?
Works in 14 of 21 · partial in 2 · not supported in 4 · 1 untested
- Does :first-child work in Outlook Classic?
Works in 12 of 21 · partial in 3 · not supported in 5 · 1 untested
Every feature in Outlook Classic · All email CSS features · What real installs show
Paste your email
Get new email CSS fixes by email.