Pergunta sobre css, regex – lookahead positivo em css

9

Eu sei em Perl regex a noção do lookahead positivo ou sejaq(?=u) corresponde a um q que é seguido por um u, sem fazer a parte u do jogo. Eu estou procurando algo semelhante em css: eu quero combinar umdiv, seguido por um irmãodiv.specialClass.

<div>..</div>  <!-- div to match -->
<div class="specialClass">..</div>

Eu brinquei com + mas isso combina comdiv.specialClass, enquanto eu quero o precedentediv.

Então você quer combinar algo como o seguinte:<div><div class="specialClass">? user672118
@dusnmoreb desculpe, a estrutura deve ser:<div>..</div><div class="specialClass">..</div> irá atualizar a questão. dr jerry

Sua resposta

1   a resposta
10

nto é sempre o último elemento do seletor em CSS, até que tenhamos o poder de movê-lo, provavelmente usando o$ ou! sintaxe.

// Always selects the .specialClass div which follows another div
div + div.specialClass {
    color: red;
}

No futuro, você poderá criar o primeiro div do assunto, provavelmente com a seguinte sintaxe:

// Selects any `div` preceding any `div.specialClass`
$div + div.specialClass { // or maybe div! + div.specialClass
    color: red;
}

Seu únicosolução alternativa no ínterim é usar JavaScript. Uma ferramenta como o jQuery tornaria isso muito trivial:

$("div + div.specialClass").prev();

Que agora é uma referência para todosdiv elementos imediatamente anteriores a qualquerdiv.specialClass.

Demonstração:http://jsfiddle.net/jonathansampson/HLfCr/
Fonte:http://dev.w3.org/csswg/selectors4/#subject

Legal, existe uma RFC para isso? Paulpro
@drjerry The$ ainda não está definido em pedra. Há também!, que seguiria o assunto. Não tenho certeza do que será final. Sampson
@ Jonathan Sampson vou descansar meu caso. Dar um segundo pensamento $ como o seletor de foco / operador é provavelmente mais intuitivo. dr jerry
@drjerry Você pode falar o que pensa sobre o W3C Tenho certeza, mas acho que é mais provável$ já que é o que parece ser o padrão nos atuais rascunhos de trabalho dos Seletores de Nível 4. Sampson
@ Jonathan Sampson Obrigado pela resposta. Ainda há uma chance de votar / propor para a sintaxe regex: `div? = Div.specialClass? (Eu amo regex) dr jerry

Perguntas relacionadas