如果我有一个带有flex-direction: column
的flex容器,可以说这个容器包装了3个div。
我的问题是:如何在不更改此html公式的情况下使第二个div与第一个div内联显示,而第三个div具有列方向的影响:
.flex-container {
display: flex;
align-items: center;
}
<div class="flex-container">
<div>1</div>
<div>2</div>
<div>3</div>
</div>
我需要在不修改html的情况下做到这一点,有没有办法仅通过CSS来实现?
答案 0 :(得分:1)
你们要么
display:flex
(1)在包装器中放入前两个div row
,给其flex-wrap:wrap
并给第三格min-width: 100%
(2)(1)
.flex-container {
display: flex;
flex-direction: column;
align-items: center;
}
.flex-container > *:first-child{
display: flex;
align-self: stretch;
justify-content: space-around;
}
<div class="flex-container">
<div>
<div>1</div>
<div>2</div>
</div>
<div>3</div>
</div>
(2)
.flex-container {
display: flex;
flex-direction: row;
flex-wrap: wrap;
justify-content: space-around;
}
.flex-container > *:last-child{
min-width: 100%;
text-align: center;
}
<div class="flex-container">
<div>1</div>
<div>2</div>
<div>3</div>
</div>
答案 1 :(得分:1)
使用CSS order
属性重新排列容器中的项目。
.flex-container {
display: flex;
flex-direction: column;
flex-wrap: wrap;
height: 100px;
align-content: flex-start;
}
.flex-container > div {
flex: 0 0 40px;
width: 50px;
}
.flex-container > div:nth-child(2) {
order: 1;
}
/* non-essential decorative styles */
.flex-container {
background-color: lightgray;
}
.flex-container > div {
margin: 5px;
border: 1px solid black;
background-color: lightgreen;
display: flex;
align-items: center;
justify-content: center;
}
* {
box-sizing: border-box;
}
<div class="flex-container">
<div>1</div>
<div>2</div>
<div>3</div>
</div>