Верстка изображения с подписью
При верстке очередного проекта появилась такая задача — необходимо сверстать изображение в контентной части с подписью снизу. Причем подпись, независимо от количества символов, не должна выходить за пределы ширины изображения, выравнивание текста всегда от левого края изображения. Ширина самого изображения может быть любой, в мобильной версии подставляется другой вариант, также оно может быть по выравнено не только по левому краю, но и по центру. Рассмотрим, как это можно реализовать.
§ Разметка
Начнем с разметки. Не забываем про семантику.
<div class="article-media article-media_center">
<figure class="article-media__inner">
<picture class="article-media__img-wrap">
<source srcset="https://via.placeholder.com/300x225" media="(max-width: 767px)">
<img src="https://via.placeholder.com/600x450" alt="" class="article-media__img" />
</picture>
<figcaption class="article-media__caption">Какая-то очень умная длинная подпись, которая не выходит за пределы ширины изображения</figcaption>
</figure>
</div>
§ Стили
Прекрасно то, что это реализовывается без всякого js, одними стилями. Элемент .article-media__inner
делаем строчно-блочным, чтобы выравнивать его по нужному краю с помощью родительского модификатора. Для подписи задаем принудительное центрирование слева — оно всегда будет таковым.
.article-media__inner {
display: inline-block;
}
.article-media__caption {
text-align: left;
}
И далее мы используем свойство max-width
со значением fit-content
, которое не даст тексту растягивать родителя, а будет подстраиваться под картинку.
.article-media__caption {
max-width: fit-content;
}