2015-05-16 11 views
5

Ho 2 righe di CSS per impostare il margine su ogni elemento tranne l'ultimo. C'è un modo per combinarlo in 1 linea?Margine su ogni elemento tranne l'ultimo

Questo è quello che ho attualmente (di lavoro):

.work img { 
    margin-right: 10px; 
} 

.work img:last { 
    margin-right: 0px; 
} 

Ho provato a cambiare a:

.work img:not(:last) { 
    margin-right: 10px; 
} 

Ma non sta funzionando? Qualche idea del perché?

UPDATE Ho solo cinque immagini. La mia altra opzione sarebbe di avere margini solo sui primi quattro.

+0

Si consiglia di provare .Interventi img: last-child {m argin-right: 0px} – Quintile

+0

@Quintile che utilizza ancora 2 righe di CSS. Mi stavo chiedendo se potevo farlo in una sola riga. La prima parte del mio codice funziona. Non la seconda parte – user4756836

+0

Il motivo è che non esiste un selettore ': last' ma abbiamo': last-child' e ': last-of-type'. Stavo giocando con questi selettori e ho pensato che potesse aiutare qualcuno in futuro: https://jsfiddle.net/21rs5dog/ –

risposta

0

Prova questo:

.work img { 
    margin-right: 10px; 
} 

.work img:last-child { 
    margin-right: 0px; 
} 

o

.work img:not(:last-child) { 
    margin-right: 10px; 
} 

o soluzione jQuery:

jQuery('.work img:not(:last)').css({marginRight: 10); 

Ricordate, il vostro bisogno di avere il supporto del browser per selettore se si applica puro CSS.

Vai a questa per riferimento: http://caniuse.com/#search=%3Alast-child

0

Se avete bisogno di supporto completo del browser, vi suggerirei di usare un po 'di javascript, o l'aggiunta di una classe di .last sull'ultimo IMG. In caso contrario, si può solo fare:

.work img:last-child { 
    margin: 0; 
} 
Problemi correlati