Установите ширину figcaption из img и выровняйте
Для отображения цифр я использую
<figure>
<img …>
<figcaption>This is a longer caption that may wrap lines.</figcaption>
</figure>
Теперь я пытаюсь получить через CSS следующее:
-
figure
находится по центру страницы по горизонтали. -
figcaption
имеет ту же ширину, что иimg
. Это важно для обтекания строк. - Ширина исходит от
img
. -
figcaption
выравнивается по левому краю сimg
.
Другими словами, я хочу вот что (рамки для ясности):
Я взломал макет выше, дав
figure
явный
width
(т.е. нарушение 3 выше), но, конечно, это не очень желательно.
Как мне заставить это работать? Я должен посмотреть в
layout: flex
?
1 ответ
Min -content + flex или grid могут помочь, display;table тоже работает, чтобы уменьшить фигуру до самого широкого элемента.
фрагмент для игры ниже
body {/* if the matter is to center on the center of the window */
margin: 0;
display: grid;/*or */ /* display:flex;*/ /*also works*/
min-height: 100vh;
}
figure {
background:yellow;
/* center x,y*/
margin: auto;
/* without a flex or grid parent, make it a block that can shrink and center horizontally
display:block; */
/* shrink to the single widest content */
width: min-content;
/* or/and instead block
display:table;
width:0;
*/
}
<figure>
<img src="https://dummyimage.com/100">
<figcaption>This is a longer caption that may wrap lines untill a word is wider than the image itself.</figcaption>
</figure>