使用 flex 重新排列布局
Rearrange layout with flex
我关注html。
<div id="wrapper">
<div id="a"></div>
<div id="b"></div>
<div id="c"></div>
</div>
使用 css flex
,我在桌面模式下有以下布局:
++++++++++++++++++++++++++++++++++++++++++
+ + + +
+ A + B + C +
+ + + +
++++++++++++++++++++++++++++++++++++++++++
我想重新排列 div,以便在移动模式下看起来像:
++++++++++++++++++++++++++++++++++++++++++
+ +
+ B +
+ +
++++++++++++++++++++++++++++++++++++++++++
+ + +
+ A + C +
+ + +
++++++++++++++++++++++++++++++++++++++++++
是否可以使用 flex 技巧?
您可以使用 flex order
实现此目的
#wrapper {
display: flex;
align-items: center;
flex-wrap: wrap;
}
#a, #b,#c{
flex: 0 0 33.33%;
text-align:center;
min-height: 100px;
}
#a{
background: red;
}
#c {
background: blue;
}
@media (max-width:767px){
#a {
order: 2;
flex: 0 0 50%;
}
#b {
order: 1;
flex: 0 0 100%;
}
#c {
order: 3;
flex: 0 0 50%;
}
}
<div id="wrapper">
<div id="a">a</div>
<div id="b">b</div>
<div id="c">c</div>
</div>
是的,您当然可以使用 flexbox 进行此布局。
以下CSS可能对您有所帮助。
#wrapper{
display:-webkit-box;
display:-ms-flexbox;
display:flex;
-ms-flex-wrap:wrap;
flex-wrap:wrap;
}
#wrapper>div{
border:1px solid #ccc;
padding:15px;
-webkit-box-flex:1;
-ms-flex:1;flex:1;
text-align:center;
}
@media(max-width:767px) {
#wrapper>#b{
min-width:100%;
-webkit-box-ordinal-group:0;
-ms-flex-order:-1;
order:-1;
}
}
<div id="wrapper">
<div id="a">a</div>
<div id="b">b</div>
<div id="c">c</div>
</div>
我关注html。
<div id="wrapper">
<div id="a"></div>
<div id="b"></div>
<div id="c"></div>
</div>
使用 css flex
,我在桌面模式下有以下布局:
++++++++++++++++++++++++++++++++++++++++++
+ + + +
+ A + B + C +
+ + + +
++++++++++++++++++++++++++++++++++++++++++
我想重新排列 div,以便在移动模式下看起来像:
++++++++++++++++++++++++++++++++++++++++++
+ +
+ B +
+ +
++++++++++++++++++++++++++++++++++++++++++
+ + +
+ A + C +
+ + +
++++++++++++++++++++++++++++++++++++++++++
是否可以使用 flex 技巧?
您可以使用 flex order
实现此目的
#wrapper {
display: flex;
align-items: center;
flex-wrap: wrap;
}
#a, #b,#c{
flex: 0 0 33.33%;
text-align:center;
min-height: 100px;
}
#a{
background: red;
}
#c {
background: blue;
}
@media (max-width:767px){
#a {
order: 2;
flex: 0 0 50%;
}
#b {
order: 1;
flex: 0 0 100%;
}
#c {
order: 3;
flex: 0 0 50%;
}
}
<div id="wrapper">
<div id="a">a</div>
<div id="b">b</div>
<div id="c">c</div>
</div>
是的,您当然可以使用 flexbox 进行此布局。
以下CSS可能对您有所帮助。
#wrapper{
display:-webkit-box;
display:-ms-flexbox;
display:flex;
-ms-flex-wrap:wrap;
flex-wrap:wrap;
}
#wrapper>div{
border:1px solid #ccc;
padding:15px;
-webkit-box-flex:1;
-ms-flex:1;flex:1;
text-align:center;
}
@media(max-width:767px) {
#wrapper>#b{
min-width:100%;
-webkit-box-ordinal-group:0;
-ms-flex-order:-1;
order:-1;
}
}
<div id="wrapper">
<div id="a">a</div>
<div id="b">b</div>
<div id="c">c</div>
</div>