Anytime you need to display a piece of content—like an image—with an optional caption, consider using a `<figure>`.
-Use the included `.figure` and `.figure-caption` classes to provide some baseline styles for the HTML5 `<figure>` and `<figcaption>` elements. As a bonus, immediate children images are automatically responsive.
+Use the included `.figure` , `.figure-img` and `.figure-caption` classes to provide some baseline styles for the HTML5 `<figure>` and `<figcaption>` elements. Images in figures have no explicit size, so be sure to add the `.img-fluid` class to your `<img>` to make it responsive.
{% example html %}
<figure class="figure">
- <img data-src="holder.js/400x300" class="img-rounded" alt="A generic square placeholder image with rounded corners in a figure.">
+ <img data-src="holder.js/400x300" class="figure-img img-fluid img-rounded" alt="A generic square placeholder image with rounded corners in a figure.">
<figcaption class="figure-caption">A caption for the above image.</figcaption>
</figure>
{% endexample %}
{% example html %}
<figure class="figure">
- <img data-src="holder.js/400x300" class="img-rounded" alt="A generic square placeholder image with rounded corners in a figure.">
+ <img data-src="holder.js/400x300" class="figure-img img-fluid img-rounded" alt="A generic square placeholder image with rounded corners in a figure.">
<figcaption class="figure-caption text-right">A caption for the above image.</figcaption>
</figure>
{% endexample %}
.figure {
// Ensures the caption's text aligns with the image.
display: inline-block;
+}
- > img {
- @extend .img-fluid;
- margin-bottom: ($spacer-y / 2);
- line-height: 1;
- }
+.figure-img {
+ margin-bottom: ($spacer-y / 2);
+ line-height: 1;
}
.figure-caption {