BEM
結構,這邊先不用理解 BEM 是什麼,之後會有單獨的文章做介紹,此時的編譯結果為:
1 2 3 4 5 6 7 8 9 10 11
|
.list { display: flex; }
.list__item { color: red; }
.list__item--active { color: blue; }
|
由於
&__item
與
&--active
都使用了父選擇器,故最後的編譯結果就都與
.list
同階層,這應該蠻好理解的,在實務中,我也很常使用此技法來撰寫樣式,可有效提升其閱讀性,這邊要注意,前面都是將
&
放置在 CSS 選擇器之前,你也可以把它放在 CSS 選擇器之後:
1 2 3 4 5 6 7
|
.menu { max-height: 0px;
.open & { max-height: 300px; } }
|
編譯結果為:
1 2 3 4 5 6 7
|
.menu { max-height: 0px; }
.open .menu { max-height: 300px; }
|
是不是覺得很熟悉?這不就是 hamburger menu 的手法嗎?以往我們都得在額外區塊撰寫樣式,現在利用
&
即可輕鬆完成任務,且很明顯的可以看出兩者是有其關聯性的,並不像之前散落在各自的區塊上。