Seletor de Pai
O seletor de pai, &
, é um seletor especial inventado pela Sass que é usado nos seletores encaixados para referir-se ao seletor externo. Ele torna possível reutilizar o seletor externo de maneiras mais complexas, como adicionar uma pseudo-classe ou adicionar um seletor antes do pai.
Quando um seletor de pai é usado num seletor interno, é substituído pelo seletor externo correspondente. Isto acontece no lugar do comportamento de encaixamento normal:
⚠️ Atenção!
Uma vez que o seletor de pai poderia ser substituído por um seletor de tipo como h1
, apenas é permitido no início de seletores compostos onde um seletor de tipo também seria permitido. Por exemplo, span&
não é permitido.
Embora estejamos a examinar desprender esta restrição. Se gostarias de ajudar a fazer isto acontecer, consulte esta questão da GitHub.
Adicionando SufixosAdicionando Sufixos permalink
Tu podes também usar o seletor de pai para adicionar sufixos adicionais ao seletor externo. Isto é particularmente útil quando usas uma metodologia como BEM que usa nomes de classe altamente estruturados. Enquanto o seletor externo termina com um nome alfanumérico (como classe, identificador, e seletores de elemento), podes usar o seletor de pai para anexar texto adicional:
Na SassScriptNa SassScript permalink
O seletor de pai também pode ser usado dentro da SassScript. É uma expressão especial que retorna o seletor pai atual no mesmo formato usado pelas funções de seletor: uma lista separada por vírgula (a lista de seletor) que contém listas separadas por espaço (os seletores complexos) que contém sequências de caracteres sem aspas (os seletores compostos):
Se a expressão &
for usada fora de quaisquer regras de estilo, retorna null
. Já que null
é falso isto significa que podes facilmente usá-lo para determinar se uma mistura está a ser ou não chamada numa regra de estilo:
Encaixamento AvançadoEncaixamento Avançado permalink
Tu podes usar &
como um expressão de SassScript normal, o que significa que podes passá-lo para funções ou incluí-lo na interpolação — mesmo em outros seletores! Usá-lo em conjunto com funções de seletor e a [regra @at-root
] permite-te encaixar seletores de maneiras muito poderosas:
Por exemplo, suponhamos que queres escrever um seletor que combina com o seletor externo e um seletor de elemento. Tu poderias escrever uma mistura como esta que usa a função selector.unify()
para combinar &
com um seletor do utilizador:
⚠️ Atenção!
Quando a Sass está a encaixar seletores, não sabe qual interpolação foi usada para gerá-los. Isto significa que adicionará automaticamente o seletor externo ao seletor interno mesmo se usaste &
como uma expressão de SassScript. É por isto que precisas de usar explicitamente a regra @at-root
para dizeres a Sass para não incluir o seletor externo.