Si consideri il seguente frammento di codice:immagini Responsive in una tabella fluid-width (max-width)
HTML:
<div>
<img src="http://placehold.it/600x150" />
</div>
CSS:
div { max-width: 200px }
img { max-width: 100% }
Il l'immagine non sarà mai più larga di 200 px, indipendentemente dalla sua dimensione nativa. Fin qui tutto bene.
Ecco il violino: http://jsfiddle.net/PeAAb/
Tuttavia, se l'elemento genitore ha la sua display
insieme a table
:
div { max-width: 200px; display: table }
l'immagine si espande magicamente alla sua larghezza originaria, ampliando il table
con esso .
Ecco il violino: http://jsfiddle.net/PeAAb/1/
stesso accade con una tabella effettiva: http://jsfiddle.net/PeAAb/2/
Domanda: È questo il comportamento previsto? In tal caso, cosa si può fare per ovviare a questo problema?
L'impostazione dello width
del genitore (anche una larghezza basata su percentuale) anziché max-width
ricomprime correttamente l'immagine nella sua casella, ma non è una soluzione. Ho bisogno che il genitore sia fluido (lo sto usando per la struttura principale del sito, così posso avere the sidebar HTML appear after the main content in the source, but with the sidebar being fixed width).
Inoltre, setting table-layout
to fixed
sembra avere no effect qui.
Sto cercando di creare qualcosa di reattivo in SharePoint 2010, che ha un'abitudine davvero sgradevole di avvolgere le tabelle annidate attorno alle cose. Se conosci una soluzione a questo (che funziona fino a IE8) mi piacerebbe sentirne parlare. La soluzione di @ pKs (display: block;) fallisce in IE8/9 qui :( –