Почему flexbox растягивает мой образ?
Flexbox имеет такое поведение, когда он растягивает изображения до их естественной высоты. Другими (более конкретными) словами, если у меня есть контейнер flexbox с дочерним изображением, и я изменяю ширину этого изображения, высота не изменяется вообще, и изображение растягивается.
<div>
<img src="https://loremflickr.com/400/300" >
<h4>Appify</h4>
<p> some text </p>
</div>
а это таблица стилей
div {
display: flex;
flex-wrap: wrap;
}
img{
width: 50%
}
добавил это codepen чтобы продемонстрировать, что я имею в виду.
Чем это вызвано?
4 ответов:
он растягивается, потому что
align-selfзначение по умолчаниюstretch. Наборalign-selftocenter.align-self: centerсм. doc здесь: align-self
ключ
align-self: center:.container { display: flex; flex-direction: column; } img { max-width: 100%; } img.align-self { align-self: center; }<div class="container"> <p>Without align-self:</p> <img src="http://i.imgur.com/NFBYJ3hs.jpg" /> <p>With align-self:</p> <img class="align-self" src="http://i.imgur.com/NFBYJ3hs.jpg" /> </div>
я столкнулся с той же проблемой с меню Foundation.
align-self: center;не работает для меня.мое решение было обернуть изображение с
<div style="display: inline-table;">...</div>
добавлять
marginвыровнять изображения:так как мы хотели
imageнаleft-alignedдобавлен:img { margin-right: auto; }аналогично
imageнаright-aligned, мы можем добавитьmargin-right: auto;. Фрагмент показывает демо для обоих типов выравнивания.Удачи...
div { display:flex; flex-direction:column; border: 2px black solid; } h1 { text-align: center; } hr { border: 1px black solid; width: 100% } img.one { margin-right: auto; } img.two { margin-left: auto; }<div> <h1>Flex Box</h1> <hr /> <img src="https://via.placeholder.com/80x80" class="one" /> <img src="https://via.placeholder.com/80x80" class="two" /> <hr /> </div>
Comments