Existe alguma maneira de LESS aplicar o seletor filho imediato (>) em sua saída?
No meu estilo. Menos, quero escrever algo como:
.panel {
...
> .control {
...
}
}
e fazer com que LESS gere algo como:
.panel > .control { ... }
Existe alguma maneira de LESS aplicar o seletor filho imediato (>) em sua saída?
No meu estilo. Menos, quero escrever algo como:
.panel {
...
> .control {
...
}
}
e fazer com que LESS gere algo como:
.panel > .control { ... }
Respostas:
ATUALIZAR
Na verdade, o código da pergunta original funciona bem. Você pode apenas ficar com o >seletor filho.
Encontrei a resposta.
.panel {
...
>.control {
...
}
}
Observe a falta de espaço entre ">" e ".", Caso contrário, não funcionará.
.panel >.control.
div > pe div>p. Consistência estaria sempre usando espaço entre os seletores (dê uma olhada no CSS gerado).
A forma oficial:
.panel {
& > .control {
...
}
}
& sempre se refere ao seletor atual.
Consulte http://lesscss.org/features/#features-overview-feature-nested-rules
div > pou div >p? O &combinador é a maneira canônica de fazer em MENOS, não meus sentimentos. Sua explicação é retórica. Algumas pessoas escrevem seu CSS em uma única linha ...
A sintaxe correta seria a seguinte, enquanto o uso de '&' seria redundante aqui.
.panel{
> .control{
}
}
De acordo com menos diretrizes , '&' é usado para parametrizar ancestrais (mas não há essa necessidade aqui). Em este exemplo, menos , e: hover é mais essencial : hover caso contrário, resultaria em erro sintáctico. No entanto, não há tal requisito sintático para usar '&' aqui. Caso contrário, todos os aninhamentos exigiriam '&', pois se referem essencialmente ao pai.
Além disso, se você tiver como alvo o primeiro elemento filho, como o primeiro <td>de a <tr>, poderá usar algo assim:
tr {
& > td:first-child {font-weight:bold;}
}
isso ajuda a reduzir as declarações de classe quando elas não são necessárias.