J'ai une balise div avec une hauteur fixe. La plupart des images ont la même hauteur et la même largeur.
Je veux aligner les images au bas de la div pour qu'elles soient bien arrangées. Voici ce que j'ai jusqu'à présent:
<div id="randomContainer">
<div id="imageContainer">
<img src="1.png" alt=""/>
<img src="2.png" alt=""/>
<img src="3.png" alt=""/>
<img src="4.png" alt=""/>
</div>
<div id="navigationContainer">
<!-- navigation stuff -->
</div>
</div>
Le CSS ressemble à:
div#imageContainer {
height: 160px;
vertical-align: bottom;
display: table-cell;
}
J'ai réussi à aligner les images du bas avec display: table-cell
et le vertical-align: bottom
attributs css.
Existe-t-il un moyen plus simple d’afficher la div sous forme de tableau et d’aligner les images au bas de la balise DIV?
Ceci est votre code: http://jsfiddle.net/WSFnX/
En utilisant display: table-cell
est correct, à condition que vous sachiez que cela ne fonctionnera pas dans IE6/7. Sinon, c'est sûr: Y a-t-il un inconvénient à utiliser `display: table-cell`on divs?
Pour corriger l'espace en bas, ajoutez vertical-align: bottom
au img
s actuel:
Supprimer l’espace entre les images revient à ceci: alternative à la propriété CSS3?
Alors, voici une démo avec les espaces blancs supprimés dans votre code HTML: http://jsfiddle.net/WSFnX/4/
Définissez la div parent comme position:relative
et l'élément interne à position:absolute; bottom:0
Les Flexbox peuvent accomplir cela en utilisant align-items: flex-end; flex-direction: column;
avec display: flex;
ou display: inline-flex;
div#imageContainer {
height: 160px;
align-items: flex-end;
display: flex;
flex-direction: column;
}
<div>
avec quelques proportions
div {
position: relative;
width: 100%;
height: 100%;
}
<img>
avec leurs propres proportions
img {
position: absolute;
top: 0;
left: 0;
bottom: 0;
right: 0;
width: auto; /* to keep proportions */
height: auto; /* to keep proportions */
max-width: 100%; /* not to stand out from div */
max-height: 100%; /* not to stand out from div */
margin: auto auto 0; /* position to bottom and center */
}