I have div1
with flex-direction: column
. Inside that div1 I want to have another div2
.
I'll be populating that div2 with words of different lengths and I want the width
to be auto
(self-adjustable).
But width: auto
doesn’t work with flex-direction: column
.
And I want to have div2
aligned to the left.
.parent {
background: lightblue;
padding: 10px;
display: flex;
flex-direction: column;
}
.child {
display: flex;
border: 2px solid green;
border-radius: 4px;
padding: 10px;
///////
width: auto;
}
<div class='parent'>
<div class='child'>
<span>
Some text
</span>
</div>
</div>
I want the same behavior as if flex-direction
would be set to row
. Just like this:
.parent {
background: lightblue;
padding: 10px;
display: flex;
flex-direction: row;
}
.child {
display: flex;
border: 2px solid green;
border-radius: 4px;
padding: 10px;
}
<div class='parent'>
<div class='child'>
<span>
Some text
</span>
</div>
</div>
P.S. Cannot use width: max-content;
and width: min-content;
CodePudding user response:
Place align-items:flex-start
on the parent.
.parent {
background: lightblue;
padding: 10px;
display: flex;
flex-direction: column;
align-items: flex-start;
}
.child {
display: flex;
border: 2px solid green;
border-radius: 4px;
padding: 10px;
}
<div class='parent'>
<div class='child'>
<span>
Some text
</span>
</div>
</div>
Alternatively, align-self:start
on the child
.parent {
background: lightblue;
padding: 10px;
display: flex;
flex-direction: column;
}
.child {
display: flex;
border: 2px solid green;
border-radius: 4px;
padding: 10px;
align-self: start;
}
<div class='parent'>
<div class='child'>
<span>
Some text
</span>
</div>
</div>