Bootstrap 4
Pour Bootstrap 4, utilisez Sass (SCSS) :
// make images responisve by default
img {
@extend .img-fluid;
}
réponse mise à jour pour la version 3
Bootstrap 3 possède une classe spéciale pour les images réactives (dont la largeur maximale est fixée à 100 %). Cette classe est définie comme suit :
.img-responsive {
display: block;
height: auto;
max-width: 100%;
}
Notez que la balise img est utilisée par défaut :
img {
vertical-align: middle;
border: 0;
page-break-inside: avoid;
max-width: 100% !important;
}
Alors utilisez class="img-responsive"
pour rendre vos images réactives.
Pour que toutes les images soient réactives par défaut :
css : ajoutez le code ci-dessous sous le css du bootstrap :
img {
display: block;
height: auto;
max-width: 100%;
}
moins : ajoutez le code ci-dessous dans votre mixins.less :
img {
&:extend(.img-responsive);
}
Note : nécessite Less 1.4.0. voir : https://stackoverflow.com/a/15573240/1596547
Carrousel
balises img à l'intérieur d'un carrousel sont réactives par défaut
Règles sémantiques
Voir aussi la réponse de @its-me ( https://stackoverflow.com/a/18653778/1596547 ). L'utilisation de ce qui précède pour rendre toutes vos images réactives par défaut transforme vos images en éléments au niveau du bloc . Les éléments de niveau bloc ne sont pas autorisés dans les paragraphes ( <p>
), voir : https://stackoverflow.com/a/4291515/1596547
D'après ce que j'ai compris, la distinction entre les éléments de niveau bloc et les éléments en ligne est remplacée par un ensemble plus complexe de catégories de contenu. Voir aussi : https://developer.mozilla.org/en-US/docs/Web/HTML/Inline_elemente#Inline_vs._block-level . Ainsi, en HTML5, une balise p peut contenir n'importe quel élément de phrasé mélangé à des données de caractères normales. (voir : http://www.w3.org/TR/html-markup/p.html ) Le img
est un tel élément de formulation. Le site img
la valeur par défaut de la balise display est en effet inline-block
. Le fait de changer la propriété d'affichage en bloc n'enfreint aucune des règles précédentes.
Les éléments de niveau bloc ( display:block
) prennent tout l'espace disponible de leur parent, ce qui semble être exactement ce que l'on attend des images réactives. Ainsi, la définition de display: block;
semble un choix raisonnable, qu'il faut préférer à la inline-block
déclaration.
Les images à l'intérieur des éléments p qui nécessitent inline-block
comme le suggère @its-me ( https://stackoverflow.com/a/18653778/1596547 ) ne devrait peut-être pas être réactif du tout.