问题
I need create layout which will contain list of items in two columns. Like i showed below:
.container {
border: 1px solid red;
height: 300px;
display: flex;
flex-direction: column;
justify-content: flex-start;
flex-wrap: wrap;
}
.item {
border: 1px dashed blue;
height: 50px;
}
<div class="container">
<div class="item">1</div>
<div class="item">2</div>
<div class="item">3</div>
<div class="item">4</div>
<div class="item">5</div>
<div class="item">6</div>
<div class="item">7</div>
<div class="item">8</div>
</div>
回答1:
You can set a max-width for the item, equal to 50%. This will keep it, almost, the same width no matter what. I say almost because you also have borders set.
In order to keep the width exactly the same, you also have to set box-sizing: border-box for item.
So, your code will be:
.item {
border: 1px dashed blue;
height: 50px;
box-sizing: border-box;
max-width: 50%;
}
.container {
border: 1px solid red;
height: 300px;
display: flex;
flex-direction: column;
justify-content: flex-start;
flex-wrap: wrap;
}
.item {
border: 1px dashed blue;
height: 50px;
box-sizing: border-box;
max-width: 50%;
}
<div class="container">
<div class="item">1</div>
<div class="item">2</div>
<div class="item">3</div>
<div class="item">4</div>
<div class="item">5</div>
<div class="item">6</div>
<div class="item">7</div>
<div class="item">8</div>
</div>
回答2:
Try something like this:
.row {
display: flex;
flex-direction: row;
flex-wrap: wrap;
width: 100%;
}
.column {
display: flex;
flex-direction: column;
flex-basis: 100%;
flex: 1;
}
.blue-column {
background-color: blue;
height: 100px;
}
.green-column {
height: 100px;
background-color: green;
}
<div class='some-page-wrapper'>
<div class='row'>
<div class='column'>
<div class='blue-column'>
Some Text in Column One
</div>
</div>
<div class='column'>
<div class='green-column'>
Some Text in Column Two
</div>
</div>
</div>
</div>
来源:https://stackoverflow.com/questions/44242141/two-columns-flex-box-layout