considerare questo HTML con le classi CSS aa, bb e cc:Selettore figlio opzionale, con CSS/Stylus/LESS: .aa> .bb? > .cc
<div class='aa'>
<div class='bb'>
<div class='cc'>
</div>
</div>
</div>
posso selezionare il tag class=cc
in questo modo: .aa > .bb > .cc
. Tuttavia, nel mio caso, a volte il tag .bb
è assente, che è, il codice HTML si presenta in questo modo:
<div class='aa'>
<div class='cc'>
</div>
</div>
Thererfore, per selezionare tutte .cc
vicino ad una .aa
, avrei bisogno di specificare due percorsi CSS:
.aa > .bb > .cc,
.aa > .cc { .... }
questo funziona, ma, non c'è un modo più breve? Qualcosa di simile a questo:
.aa > (.bb >)? .cc { ... } /* ? means "optional" */
con i CSS o qualcosa di simile stilo o di meno?
Motivazione: Nel mondo reale, "aa" e "bb" e "cc" sono nomi un po 'più lunghi, e ci sono altre cose prima e dopo "aa" e "cc", e sarebbe bello non è necessario duplicare quella roba.
Nota: nel mio caso, questo non funzionerà: .aa .cc
perché corrisponderebbe a troppi .cc
s altrove nella pagina. Gli .cc
s devono essere immediatamente sotto lo .aa
o sotto .aa > .bb
.
Se '.aa .cc' è troppo generico perché non si vogliono confrontare gli elementi' .cc' che sono discendenti più distanti degli elementi '.aa', quindi penso' .aa> .bb>. Il selettore cc, .aa> .cc' che hai già menzionato è il migliore. – nnnnnn
Nel CSS standard non c'è altro modo. – BoltClock
Sono '.bb' e' .cc' gli unici due possibili figli di '.aa'? – BoltClock