Je veux que mes images du carrousel soient au centre (horizontalement), ce qui n'est pas le cas par défaut. Je suis la solution à ce sujet .
Cependant, avec cette solution, lorsque le carrousel est redimensionné et plus petit que l'image, l'image est recadrée au lieu d'être redimensionnée par défaut.
Comment puis-je centrer mon image tout en la laissant s'étirer jusqu'à l'élément du carrousel?
Maintenant (sur Bootstrap 3 et 4) c'est simplement:
.carousel-inner img {
margin: auto;
}
Je suppose que vous avez des images de tailles différentes. J'ai testé cela moi-même et cela fonctionne comme vous le décrivez (toujours centré, largeur des images appropriée)
/*CSS*/
div.c-wrapper{
width: 80%; /* for example */
margin: auto;
}
.carousel-inner > .item > img,
.carousel-inner > .item > a > img{
width: 100%; /* use this, or not */
margin: auto;
}
<!--html-->
<div class="c-wrapper">
<div id="carousel-example-generic" class="carousel slide">
<!-- Indicators -->
<ol class="carousel-indicators">
<li data-target="#carousel-example-generic" data-slide-to="0" class="active"></li>
<li data-target="#carousel-example-generic" data-slide-to="1"></li>
<li data-target="#carousel-example-generic" data-slide-to="2"></li>
</ol>
<!-- Wrapper for slides -->
<div class="carousel-inner">
<div class="item active">
<img src="http://placehold.it/600x400">
<div class="carousel-caption">
hello
</div>
</div>
<div class="item">
<img src="http://placehold.it/500x400">
<div class="carousel-caption">
hello
</div>
</div>
<div class="item">
<img src="http://placehold.it/700x400">
<div class="carousel-caption">
hello
</div>
</div>
</div>
<!-- Controls -->
<a class="left carousel-control" href="#carousel-example-generic" data-slide="prev">
<span class="icon-prev"></span>
</a>
<a class="right carousel-control" href="#carousel-example-generic" data-slide="next">
<span class="icon-next"></span>
</a>
</div>
</div>
Cela crée un "saut" dû aux hauteurs variables ... pour résoudre ce problème, essayez quelque chose comme ceci: Sélectionnez la plus haute image d'une liste
Ou utilisez media-query pour définir votre propre hauteur fixe.
Sur Bootstrap 4, ajoutez simplement mx-auto
à la classe d'images de votre carrousel.
<div class="carousel-item">
<img class="d-block mx-auto" src="http://placehold.it/600x400" />
</div>
Combinez avec les échantillons de la documentation de bootstrap carousel comme vous le souhaitez.
.carousel-inner > .item > img {
margin: 0 auto;
}
Cette solution simple a fonctionné pour moi
Ajoutez une classe à chaque image dans le code html du carrousel, puis avec css appliquez margin: 0 auto
.
ajoute ça
.carousel .item img {
left: -9999px; /*important */
right: -9999px; /*important */
margin: 0 auto; /*important */
max-width: none; /*important */
min-width: 100%;
position: absolute;
}
Et bien sûr, l’un des parents doit avoir une position: relative, mais je crois que oui.
Voir ici: http://paginacrestinului.ro/
En utilisant ceci sur bootstrap 3:
#carousel-example-generic{
margin:auto;
}
Avait un problème très similaire à cela tout en utilisant un CMS, mais cela ne résolvait pas avec la solution ci-dessus. Ce que j’ai fait pour le résoudre est mis comme suit dans le css applicable:
background-size: cover
et à des fins de placement dans le cas où vous utilisez bootstrap, j'ai utilisé:
background-position: center center /* or whatever position you wanted */
Essayez de donner une largeur en% à l'image dans le carrousel?
.item img {
width:100%;
}
J'ai placé le <div class="carousel" id...>
dans un autre div avec le conteneur de classe (<div class="container"><div class="carousel" id="my-carousel">...</div></div>
). Cela l'a résolu aussi.
Aucune des solutions ci-dessus n'a fonctionné pour moi. Il est possible qu'il y ait eu d'autres styles en conflit.
Pour moi, ce qui suit a fonctionné, j'espère que cela pourra aider quelqu'un d'autre. J'utilise bootstrap 4.
.carousel-inner img {
display:block;
height: auto;
max-width: 100%;
}
dans bootstrap v4, je centre et remplis le carrousel img à l'écran à l'aide de
<img class="d-block mx-auto" max-width="100%" max-height="100%">
à peu près sûr que cela nécessite la hauteur ou la largeur des éléments parents
html,body{height:100%;}
.carousel,.carousel-item,.active{height:100%;}
.carousel-inner{height:100%;}