[class^="col"] {
[class*="-2"] {
width: 16.5%;
}
[class*="-4"] {
width: 33%;
}
[class*="-6"] {
width: 50%;
}
}
將產生以下選擇:
[class^="col"] [class*="-2"] {}
[class^="col"] [class*="-4"] {}
[class^="col"] [class*="-6"] {}
通知每個屬性選擇器之間的空間。上面的選擇器將首先搜索具有以.col
類開始的類屬性的元素。然後他們找到嵌套在.col
元素中的元素,其中的類屬性包含-2
,-4
或-6
屬性中的某處。
通過添加&符號&
,您可以捕獲當前選擇器路徑。下面SCSS是一樣的,你有什麼現在:
[class^="col"] {
& [class*="-2"] {
width: 16.5%;
}
}
編譯成(屬性選擇器之間的空間):
[class^="col"] [class*="-2"] {}
立即嵌套選擇之前加上符號(比如你有first-child
和last-child
)給出了不同的結果,一個你(可能)想:
[class^="col"] {
&[class*="-2"] {
width: 16.5%;
}
}
編譯成(屬性選擇器之間沒有空格):
[class^="col"][class*="-2"] {}
恕我直言,你有什麼是目前在工程。我建議更直接和靈活的事情。使用常規的類選擇器。
.col {
&-2 { width: 16.5%; }
&-4 { width: 33%; }
&-6 { width: 50%; }
}
[class*="col-"] {
flex: 1;
margin: 0 8px;
&:first-child { margin-left: 0; }
&:last-child { margin-right: 0; }
}
請參閱下面的Stack Snippet來查看以上內容編譯成的內容。請注意,我使用了*=
(星號等於),而不是^=
(插入符號等於)來表示放置靈活性。如果您想強制列類成爲類屬性值中的第一個類,則由您決定。
https://codepen.io/anon/pen/yXveRq
.row {
display: flex;
}
.col-2 { width: 16.5%; }
.col-4 { width: 33%; }
.col-6 { width: 50%; }
[class*="col-"] {
flex: 1;
margin: 0 8px;
}
[class*="col-"]:first-child {
margin-left: 0;
}
[class*="col-"]:last-child {
margin-right: 0;
}
<div class="row">
<div class="col-4">Col 1</div>
<div class="col-4">Col 2</div>
<div class="col-4">Col 3</div>
</div>
嘗試'&[類* = 「 - 2」]'(請注意'&') – Morpheus