Ciao,
quello che hai riscontrato è un problema comune riguardo la giustificazione che non avviene per blocchi di testo che occupano una singola riga o, più in generale, per il testo che sta all'ultima riga (ad es. di un paragrafo con text-align:justify). L'allineamento giustificato infatti funziona su righe non interrotte. La dove c'è un ritorno a capo forzato o dove si ha il termine del blocco di testo, la riga non subirà l'allineamento giustificato (così come è normale che sia).
Le immagini ovviamente funzionano come il testo, dal momento che si tratta sempre di elementi inline. Le tue immagini, quindi, essendo disposte in singole righe, non subiscono alcuna giustificazione.
Se fai qualche ricerca con "css one line justify" (o qualcosa del genere) troverai sicuramente diverse informazioni.
Per IE esiste la proprietà text-align-last che permette proprio di forzare l'allineamento dell'ultima riga e risolvere questo problema.
Per gli altri normali browser si utilizza solitamente un workaround specificando la pseudoclasse :after con cui viene forzata la generazione di una riga fittizia dopo l'ultima con il solo scopo di poter quindi giustificare l'ultima riga (che sarà diventata la penultima).
Riportando tutto al caso tuo, potresti risolvere in questo modo:
codice:
<!DOCTYPE HTML>
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
<title>CSS - one line justify</title>
<style>
li {
height: 20px;
line-height: 20px;
text-align: justify;
text-align-last: justify; /* IE */
}
li:after {
content: "";
display: inline-block;
width: 100%;
}
</style>
</head>
<body>
<ul>[*][img]image.jpg[/img] [img]image.jpg[/img][*][img]image.jpg[/img] [img]image.jpg[/img] [img]image.jpg[/img] [img]image.jpg[/img] [img]image.jpg[/img][*][img]image.jpg[/img] [img]image.jpg[/img] [img]image.jpg[/img][/list]
</body>
</html>
Ricorda giusto di inserire uno spazio tra un'immagine e l'altra.