Je voudrais découper des images de taille variable à une hauteur de 50 % chacune.
J'ai donc pensé à utiliser la méthode d'insertion de l'élément clip-path
propriété. Mais, dans cette propriété, l'espace découpé reste en hauteur.
.container {
display: flex;
align-items: start;
}
.img {
flex: 1;
background: #900;
}
.img+.img {
margin-left: 5px;
}
img {
max-width: 100%;
width: 100%;
clip-path: inset(0 0 45% 0);
}
<div class="container">
<div class="img">
<img src="https://via.placeholder.com/300x550/009/fff.png" alt>
</div>
<div class="img">
<img src="https://via.placeholder.com/200x200/090/fff.png" alt>
</div>
<div class="img">
<img src="https://via.placeholder.com/600x150/09f/fff.png" alt>
</div>
</div>
J'ai donc utilisé overflow: hidden
y height
pour modifier le code source comme suit :
.container {
display: flex;
align-items: start;
height: 100vh;
}
.img {
flex: 1;
background: #900;
height: 45%;
overflow: hidden;
}
.img+.img {
margin-left: 5px;
}
img {
max-width: 100%;
width: 100%;
}
<div class="container">
<div class="img">
<img src="https://via.placeholder.com/300x550/009/fff.png" alt>
</div>
<div class="img">
<img src="https://via.placeholder.com/200x200/090/fff.png" alt>
</div>
<div class="img">
<img src="https://via.placeholder.com/600x150/09f/fff.png" alt>
</div>
</div>
Mais, ce sera 45% de la hauteur du conteneur parent, et non 45% de la hauteur de l'image.
Pourquoi ce comportement ? Et comment puis-je couper 50% de la hauteur de chaque image et me débarrasser de l'espace supplémentaire ?