Stylus Playground
1. 选择器
Parent 选择器
& 字符可以用于父级选择器:
1 2 3 4 5
| textarea input color #A7A7A7 &:hover color #000
|
编译为:
1 2 3 4 5 6 7 8
| textarea, input { color: #a7a7a7; } textarea:hover, input:hover { color: #000; }
|
部分选择器
你可以在任意位置使用部分选择器(Partial Reference)向上选中已有的选择器,使用 ^[N] 表示。
当 N 为正数时,代表从上向下数第 N 个选择器:
1 2 3 4 5 6 7 8
| .foo &__bar .text color red ^[0].is-primary .text color green
|
编译为:
1 2 3 4 5 6
| .foo__bar .text { color: #f00; } .foo.is-primary .text { color: #008000; }
|
^[0] 可以直接使用 /. 根选择器(Root Reference)来代替。
N 为负数时,表示从当前选择器向上第 N 位的的选择器:
1 2 3 4 5 6 7 8
| .foo &__bar .text color red ^[-1].is-primary .text color green
|
编译后:
1 2 3 4 5 6
| .foo__bar .text { color: #f00; } .foo__bar.is-primary .text { color: #008000; }
|
合理的结合父级选择器 & 可以保留当前选择器的层级,从简化 CSS 的写法,比如 .foo 元素有一个 .is-primary 的状态,希望在该状态下 .text 元素的颜色为 green,就可以写为:
1 2 3 4 5 6 7
| .foo &__bar .text color red ^[0].is-primary & color green
|
编译后:
1 2 3 4 5 6
| .foo__bar .text { color: #f00; } .foo.is-primary .foo__bar .text { color: #008000; }
|