Skip to main content

Our email CSS engine is open source. Give it a star on GitHub 

Emailens

Selector or pseudo-class · data last changed 10 Nov 2026

:descendant-combinator in email clients

Works in 17 of 21. Not supported in Proton Mail. Partial in Gmail Android and Gmail iOS. Untested in Superhuman.

Your reader in Proton Mail sees the email without :descendant-combinator, even if it looks right where you tested it.

caniemail (MIT) via @emailens/engine 0.18.22

What to do instead in Proton Mail

Inline the equivalent styles on the targeted elements for Outlook coverage. Reserve descendant selectors in <style> for progressive enhancement on clients that preserve <style> blocks.

There is no drop-in fix for :descendant-combinator in Proton Mail. Design so the email still reads without it.

The checker needs a computer screen.

Proton Mail opens with a free account. Create a free account →

:descendant-combinator is not among the 24 features we have screenshotted on real installs. The ones we have →

All 21 clients, problems first

ClientSupport
Proton Mail Not supported
Gmail Android Partial See caveat 1
Gmail iOS Partial See caveat 1
Superhuman Untested
Works in 17: Gmail, Outlook 365, Outlook (New) and 14 more. Show all
ClientSupport
Gmail Works
Outlook 365 Works
Outlook (New) Works
Outlook Classic Works
Outlook iOS Works
Outlook Android Works
Outlook for Mac Works
Apple Mail Works
Apple Mail iOS Works
Yahoo Mail Works
Yahoo Mail Android Works
Yahoo Mail iOS Works
Samsung Mail Works
Thunderbird Works
HEY Mail Works
AOL Mail Works
Fastmail Works

Caveats (1)

  1. 1. Gmail Android, Gmail iOS: Partial. Not supported with non Google accounts.

Caveats as recorded by caniemail (MIT), one entry per wording.

How :descendant-combinator behaves

The descendant combinator (a single space between selectors) matches any descendant element, regardless of nesting depth. It is the most common selector pattern in CSS but in email, like all selector-based styling, only works when the client preserves <style> blocks. Outlook Classic strips <style>, so descendant selectors never apply there.

  • Specificity-collision risk, descendant selectors easily over-apply when classes overlap.
  • Outlook ignores descendant selectors because <style> is stripped.
  • Gmail's class-rewriting can break descendant selectors that depend on class names.

Your next question

Every feature in Proton Mail · All email CSS features · What real installs show

Get new email CSS fixes by email.

caniemail (MIT) via @emailens/engine 0.18.22 · tested upstream 13 Oct 2019 · data last changed 10 Nov 2026 · Outlook (New) cells are the engine's mapping