Сделать гибкие элементы принимают ширину содержимого, а не ширину родительского контейнера
у меня есть контейнер <div> С display: flex. У него есть ребенок <a>.
как я могу заставить ребенка появляются "рядный"?
в частности, как я могу сделать ширину ребенка, определяемую его содержимым, и не расширяться до ширины родителя?
что я пробовал:
Я поставил ребенка в display: inline-flex, но он все равно занял всю ширину. Я также попробовал все другие свойства отображения, но ничего не повлияло.
пример:
.container {
background: red;
height: 200px;
flex-direction: column;
padding: 10px;
display: flex;
}
a {
display: inline-flex;
padding: 10px 40px;
background: pink;
}<div class="container">
<a href="#">Test</a>
</div>1 ответ:
использовать
align-items: flex-startна контейнере, илиalign-self: flex-startна гибких элементах.не нужно
display: inline-flex.
начальная настройка контейнера flex-это
align-items: stretch. Это означает, что гибкие элементы будут расширяться, чтобы покрыть всю длину контейнера вдоль поперечной оси.The
align-selfсвойство делает то же самое какalign-items, толькоalign-selfотносится к гибкий график работы пунктов покаalign-itemsотносится к flex контейнер.по умолчанию
align-selfнаследует значениеalign-items.так как ваш контейнер
flex-direction: column, поперечная ось горизонтальна, иalign-items: stretchрасширяет ширину дочернего элемента настолько, насколько это возможно.вы можете переопределить значение по умолчанию с помощью
align-items: flex-startна контейнере (который наследуется всеми элементами flex) илиalign-self: flex-startна элементе (который ограничен одним элементом).
Узнайте больше о выравнивании гибкого трубопровода вдоль элемент оси Креста здесь:
узнать больше о выравнивании гибкого трубопровода вдоль главная ось здесь:
Comments