mi piacerebbe provare a utilizzare display: inline-block;
per lo stile degli elementi contenenti ciascuna immagine. Esempio di codice HTML per un contenitore:
<style>
.figure {
display: inline-block;
}
</style>
<div class="figure">
<img src="littlepony.jpg" alt="My cute little pony" width="13" height="37" />
</div>
Ora lì un paio di insidie che utilizzano questo con IE6, IE7 e Firefox 2:
- IE 6 e 7 saranno solo gli elementi di stile in linea che hanno hasLayout innescato , voglio dire vedrete inline-block comportamento se si fa questo:
<!--[if lte IE 7]>
.figure {
display: inline;
zoom: 1; /* triggering hasLayout */
}
<![endif]-->
- Firefox 2 non capisce
display: inline-block;
quindi dovrete far precedere quest'ultimo da un'altra istruzione di visualizzazione:
.figure {
display: -moz-inline-stack;
display: inline-block;
}
- ora Firefox 2 sta per infastidire un po '. Innanzitutto, devi avere un solo elemento figlio nell'elemento
.figure
, altrimenti i bambini ...pila. Quindi, se avete una leggenda sotto l'immagine, inserire un div tra div.figure e img + p
<div>
<img src="littlepony.jpg" alt="Photo of my cute little pony" width="13" height="37" />
<p>Second child of .figure>div and not .figure</div>
</div>
</div>
Secondo (ancora solo in FX2), si noterà di tanto in tanto che si puo' Non è più possibile selezionare il testo all'interno dell'elemento -moz-inline-stack né fare clic sui collegamenti che potrebbe contenere. La correzione è quello di posizionare il div aggiunto relativamente:
.figure div {
position: relative;
}
Naturalmente il commento condizionale per IE6/7 deve essere successiva regolare CSS, altrimenti sarà di poco aiuto.
E infine, se nessuna soluzione elegante funziona per voi, utilizzare una tabella. Una tabella semplice con solo td e no th. Se si verifica che:
- IE6 e 7 non piace
display: table-sth
- vostro CMS causa problemi a ciò che altrimenti funzionare bene su un altro sito
- Firefox 3 il supporto per
inline-block
è di alcun aiuto
che sì è meglio per tutti che si utilizza una tabella e nessuna mezza soluzione causando problemi a metà dei tuoi utenti;)
che non sembra aiutare. Il mio codice è disposto allo stesso modo del tuo primo esempio, eccetto che c'è un grande div in tutto questo, cioè che appartiene al contenuto div principale del modello che sto usando. Il problema è che questo div stesso viene fluttuato, e sembra che qualsiasi tipo di compensazione rimuova i float su tutto il template, non solo all'interno della griglia che sto creando. – nedned