Questo CSS:verticale imbottitura di immagini responsive
.outer-img-wrap {
border: 2px solid gray;
margin: 1vw auto;
max-width: 192px;
text-align: center;
overflow: hidden;
}
.outer-img-wrap img {
width: auto !important;
height: auto !important;
max-width: 100%;
vertical-align: middle;
}
.inner-img-wrap {
background: #000;
border: thin solid #ff9900;
margin: 2px;
}
richiesto questo HTML:
<td style="width: 25%">
<div class="outer-img-wrap">
<div class="inner-img-wrap">
<img src="http://placehold.it/64x64" />
</div>
</div>
</td>
produce centrato immagini responsive in una cella di tabella della larghezza appropriata. Tutte le immagini finiscono per avere la stessa larghezza e questo è quello che voglio.
Vorrei anche che le immagini abbiano la stessa altezza in modo reattivo. Così ho aggiunto questo Javascript alla pagina per aggiornare il padding.
function resizeImageElements()
{
var imageElements = $(".outer-img-wrap .inner-img-wrap img");
var imageElementsMaxHeight = -1;
imageElements.map(function(index) {
// compare the height of the img element
if($(this).height() > imageElementsMaxHeight) {
imageElementsMaxHeight = $(this).height();
}
});
imageElements.map(function(index) {
var computeTopBottomPadding = (imageElementsMaxHeight - $(this).height())/2;
$(this).css({
"padding-top": computeTopBottomPadding,
"padding-bottom": computeTopBottomPadding,
});
});
}
resizeImageElements();
Il Domanda è: Posso ottenere lo stesso effetto senza il codice Javascript; usando solo i CSS?
Fiddle a http://jsfiddle.net/ybkgLq4d/
sto pensando che i CSS non sarebbe in grado di farlo in questa situazione. In un certo senso, è necessario conoscere quegli elementi dell'immagine che sono i più grandi e quindi determinare come rendere ognuna delle altre immagini di dimensioni uguali. Questo è un compito piuttosto facile in jQuery come hai mostrato. Credo che questo sia al di là della portata della capacità di css. – npage
Il calcolo dell'elemento dell'altezza massima è perché vorrei le stesse dimensioni per tutti i miei elementi. Ma come viene specificato un valore di "larghezza massima", è possibile specificare anche l'altezza minima o massima, se ciò rende le cose più semplici. – gaitat
Hai la possibilità di modificare il markup? –