| <html> | |
| <head> | |
| <style> | |
| html { | |
| background: grey; | |
| } | |
| .parent1 { | |
| width: 500px; | |
| background: blue; | |
| } | |
| .child1 { | |
| background: green; | |
| --my-custom-prop: 100px; | |
| width: var(--my-custom-prop); | |
| } | |
| .parent2 { | |
| width: 500px; | |
| background: blue; | |
| } | |
| .child2 { | |
| background: green; | |
| width: var(--my-custom-prop2); | |
| } | |
| .parent3 { | |
| width: 500px; | |
| background: blue; | |
| } | |
| .child3 { | |
| background: green; | |
| width: var(--my-custom-prop3); | |
| } | |
| .parent4 { | |
| width: 500px; | |
| background: blue; | |
| } | |
| .child4 { | |
| background: green; | |
| width: var(--my-custom-prop2, 300px); | |
| } | |
| .parent5 { | |
| width: 500px; | |
| background: blue; | |
| } | |
| .child5 { | |
| background: green; | |
| width: var(--my-custom-prop3, 300px); | |
| } | |
| .parent6 { | |
| width: 500px; | |
| background: blue; | |
| } | |
| .child6 { | |
| background: green; | |
| --my-custom-prop: 100px; | |
| width: var(--my-custom-prop3, --my-custom-prop1); | |
| } | |
| .parent7 { | |
| width: 500px; | |
| background: blue; | |
| } | |
| .child7 { | |
| background: green; | |
| --my-custom-prop: 100px; | |
| width: var(--my-custom-prop4); | |
| } | |
| </style> | |
| <script> | |
| CSS.registerProperty({ | |
| name: '--my-custom-prop', | |
| syntax: '<length>', | |
| inherits: false, | |
| initialValue: '200px' | |
| }) | |
| CSS.registerProperty({ | |
| name: '--my-custom-prop2', | |
| syntax: '<length>', | |
| inherits: false, | |
| initialValue: '200px' | |
| }) | |
| CSS.registerProperty({ | |
| name: '--my-custom-prop4', | |
| syntax: '<length>', | |
| inherits: false, | |
| initialValue: 'var(--my-custom-prop)' | |
| }) | |
| </script> | |
| </head> | |
| <body> | |
| <p> Single values </p> | |
| <p> Specified </p> | |
| <div class="parent1"><div class="child1"><p>100px green</p></div> </div> | |
| <p> Not specified, use initial value </p> | |
| <div class="parent2"><div class="child2"><p>200px green</p></div> </div> | |
| <p> Not specified, but not registered so use initial value for width </p> | |
| <div class="parent3"><div class="child3"><p>500px green</p></div> </div> | |
| <p> Has a fallback for registered property </p> | |
| <div class="parent4"><div class="child4"><p>200px green</p></div> </div> | |
| <p> Has a fallback for unregistered property </p> | |
| <div class="parent5"><div class="child5"><p>300px green</p></div> </div> | |
| <p> Having a fallback for a registered property that is a variable should not work</p> | |
| <div class="parent6"><div class="child6"><p>500px green</p></div> </div> | |
| <p> Having a variable in the initial value should not work</p> | |
| <div class="parent7"><div class="child7"><p>500px green</p></div> </div> | |
| </body> | |
| </html> |