@@ -432,6 +432,64 @@ The Nesting At-Rule: ''@nest'' {#at-nest}
432
432
</pre>
433
433
</div>
434
434
435
+ Nesting Conditional Rules {#conditionals}
436
+ -----------------------------------------------
437
+
438
+ A style rule can have any number of <a>conditional rules</a> inside of it, of any type,
439
+ intermixed with any number of declarations, in any order.
440
+
441
+ The presence of a nested conditional engages the same logic as if ''@nest'' was present.
442
+ The nested conditional rules must contain a <a>nesting selector</a> and follow the same
443
+ rules as outlined in <a href="#direct">direct nesting</a> .
444
+
445
+ <div class="example">
446
+ For example, the following conditional nestings are valid:
447
+
448
+ <pre class="lang-css">
449
+ .foo {
450
+ display: grid;
451
+
452
+ @media (orientation: landscape) {
453
+ & {
454
+ grid-auto-flow: column;
455
+ }
456
+ }
457
+ }
458
+ /* equivalent to
459
+ .foo { display: grid; }
460
+
461
+ @media (orientation: portrait) {
462
+ .foo {
463
+ grid-auto-flow: column;
464
+ }
465
+ }
466
+ */
467
+ </pre>
468
+
469
+ But the following are invalid:
470
+
471
+ <pre class=lang-css>
472
+ .foo {
473
+ display: grid;
474
+
475
+ @media (orientation: landscape) {
476
+ grid-auto-flow: column;
477
+ }
478
+ }
479
+ /* Invalid because there's no nesting selector */
480
+
481
+ .foo {
482
+ color: red;
483
+
484
+ @media (min-width: 480px) {
485
+ & h1, h2 { color: blue; }
486
+ }
487
+ }
488
+ /* Invalid because not all selectors in the list
489
+ contain a nesting selector */
490
+ </pre>
491
+ </div>
492
+
435
493
Mixing Nesting Rules and Declarations {#mixing}
436
494
-----------------------------------------------
437
495
@@ -440,7 +498,8 @@ Mixing Nesting Rules and Declarations {#mixing}
440
498
intermixed with any number of declarations,
441
499
in any order.
442
500
443
- The relative ordering of <a>nested style rules</a> and other declarations <strong> is</strong> important;
501
+ The relative ordering of <a>nested style rules</a> , <a>nested conditional rules</a> and
502
+ other declarations <strong> is</strong> important;
444
503
it's possible for a given style rule and a <a>nested style rule</a> within it to match the same element,
445
504
and if the specificity of the two rules is otherwise equivalent,
446
505
the relative order in the stylesheet of the applicable declarations
0 commit comments