2015-07-02 18 views
5

Sto cercando un modo CSS (no JS) per ignorare gli elementi nascosti nei conteggi nth-child. È possibile?Selezione di elementi nascosti saltati all'ennesima potenza

Ho questo HTML:

<div class="gallery-item"><img src="http://placehold.it/150x150"></div> 
<div class="gallery-item"><img src="http://placehold.it/150x150"></div> 
<div class="gallery-item empty"></div> 
<div class="gallery-item"><img src="http://placehold.it/150x150"></div> 
<div class="gallery-item empty"></div> 
<div class="gallery-item"><img src="http://placehold.it/150x150"></div> 
<div class="gallery-item"><img src="http://placehold.it/150x150"></div> 

sto cercando di indirizzare ogni seconda galleria-oggetto che non è vuoto, ma questo non sta funzionando:

.gallery-item:not(.empty):nth-child(2n) {}

Non voglio usare JS perché questo è un sito complesso che ha molti punti di interruzione e non voglio aggiungere agli ascoltatori di ridimensionare qualcosa di così semplice.

+1

Per quanto ne so, questo non è possibile con i CSS perché 'nth-child (2n)' punta a ogni 2 ° figlio e otterrebbe lo stile se ha anche classi gallery-item ma non classi vuote. – Harry

+0

Ah, mi dispiace per quell'errore di battitura. Non ho notato :( – Harry

risposta

0

di indirizzare la seconda voce

.gallery-item:not(.empty):nth-child(2) { //not :nth-child(2n) 
    background:#ddd 
} 

link JSFIDDLE

+2

Stati di domande * target ogni secondo oggetto della galleria che non è vuoto * e non solo il secondo elemento. – Harry

1

è necessario utilizzare il codice qui sotto Questo può essere un post a zero, perché utilizza JS. Tuttavia sembra essere solo l'opzione in questo caso. Non volevi usare JS, che capisco. Ma, per quanto nessuno viene fornito con i CSS unica soluzione, almeno prendere in considerazione questo: http://codepen.io/zvona/pen/jPZYNx

var galleryItems = document.querySelectorAll('.gallery-item:not(.empty)'); 

[].forEach.call(galleryItems, function(item, i) { 
    item.classList.toggle('notEmptyAndEven', i % 2) 
}); 

e poi basta aggiungere .notEmptyAndEven di selezione e le regole CSS necessari.

Problemi correlati