WPT
wpt / css / selectors / has-relative-argument.html
Spec: Selectors ↗
Runs: Chrome 155.0.8038.0 (wpt@7addae031, 2026-09-02) | Firefox 157.0a1 (wpt@7addae031, 2026-09-02) | Safari 251 preview (wpt@5ce815a83, 2026-08-27) | Ladybird 1.0-a7884 (wpt@b1a7025f8, 2026-09-02) | Servo Servo 0.6 (wpt@09159dcb3, 2026-09-02) | Blitz 188486089 (wpt@a95401e4e, 2026-09-02)
View on the Blitz WPT dashboard | Open test on wpt.live | wpt.fyi
| Chrome | Firefox | Safari | Ladybird | Servo | Blitz | |
|---|---|---|---|---|---|---|
| Total | 35/35 | 35/35 | 35/35 | 35/35 | 0/35 | 0/35 |
| Subtest | Chrome | Firefox | Safari | Ladybird | Servo | Blitz |
|---|---|---|---|---|---|---|
| .x:has(.a) matches expected elements | PASS | PASS | PASS | PASS | FAIL | FAIL |
| .x:has(.a > .b) matches expected elements | PASS | PASS | PASS | PASS | FAIL | FAIL |
| .x:has(.a .b) matches expected elements | PASS | PASS | PASS | PASS | FAIL | FAIL |
| .x:has(.a + .b) matches expected elements | PASS | PASS | PASS | PASS | FAIL | FAIL |
| .x:has(.a ~ .b) matches expected elements | PASS | PASS | PASS | PASS | FAIL | FAIL |
| .x:has(> .a) matches expected elements | PASS | PASS | PASS | PASS | FAIL | FAIL |
| .x:has(> .a > .b) matches expected elements | PASS | PASS | PASS | PASS | FAIL | FAIL |
| .x:has(> .a .b) matches expected elements | PASS | PASS | PASS | PASS | FAIL | FAIL |
| .x:has(> .a + .b) matches expected elements | PASS | PASS | PASS | PASS | FAIL | FAIL |
| .x:has(> .a ~ .b) matches expected elements | PASS | PASS | PASS | PASS | FAIL | FAIL |
| .x:has(+ .a) matches expected elements | PASS | PASS | PASS | PASS | FAIL | FAIL |
| .x:has(+ .a > .b) matches expected elements | PASS | PASS | PASS | PASS | FAIL | FAIL |
| .x:has(+ .a .b) matches expected elements | PASS | PASS | PASS | PASS | FAIL | FAIL |
| .x:has(+ .a + .b) matches expected elements | PASS | PASS | PASS | PASS | FAIL | FAIL |
| .x:has(+ .a ~ .b) matches expected elements | PASS | PASS | PASS | PASS | FAIL | FAIL |
| .x:has(~ .a) matches expected elements | PASS | PASS | PASS | PASS | FAIL | FAIL |
| .x:has(~ .a > .b) matches expected elements | PASS | PASS | PASS | PASS | FAIL | FAIL |
| .x:has(~ .a .b) matches expected elements | PASS | PASS | PASS | PASS | FAIL | FAIL |
| .x:has(~ .a + .b) matches expected elements | PASS | PASS | PASS | PASS | FAIL | FAIL |
| .x:has(~ .a + .b > .c) matches expected elements | PASS | PASS | PASS | PASS | FAIL | FAIL |
| .x:has(~ .a + .b .c) matches expected elements | PASS | PASS | PASS | PASS | FAIL | FAIL |
| .x:has(.d .e) matches expected elements | PASS | PASS | PASS | PASS | FAIL | FAIL |
| .x:has(.d .e) .f matches expected elements | PASS | PASS | PASS | PASS | FAIL | FAIL |
| .x:has(> .d) matches expected elements | PASS | PASS | PASS | PASS | FAIL | FAIL |
| .x:has(> .d) .f matches expected elements | PASS | PASS | PASS | PASS | FAIL | FAIL |
| .x:has(~ .d ~ .e) matches expected elements | PASS | PASS | PASS | PASS | FAIL | FAIL |
| .x:has(~ .d ~ .e) ~ .f matches expected elements | PASS | PASS | PASS | PASS | FAIL | FAIL |
| .x:has(+ .d ~ .e) matches expected elements | PASS | PASS | PASS | PASS | FAIL | FAIL |
| .x:has(+ .d ~ .e) ~ .f matches expected elements | PASS | PASS | PASS | PASS | FAIL | FAIL |
| .y:has(> .g .h) matches expected elements | PASS | PASS | PASS | PASS | FAIL | FAIL |
| .y:has(.g .h) matches expected elements | PASS | PASS | PASS | PASS | FAIL | FAIL |
| .y:has(> .g .h) .i matches expected elements | PASS | PASS | PASS | PASS | FAIL | FAIL |
| .y:has(.g .h) .i matches expected elements | PASS | PASS | PASS | PASS | FAIL | FAIL |
| .d .x:has(.e) matches expected elements | PASS | PASS | PASS | PASS | FAIL | FAIL |
| .d ~ .x:has(~ .e) matches expected elements | PASS | PASS | PASS | PASS | FAIL | FAIL |