默认情况下先显示移动端,通过 @media 属性适配屏幕变化
使用flexbox相关的CSS属性
- display: flex; (父元素)
- flex-wrap: nowrap | wrap | wrap-reverse; (父元素, 子元素超出该如何显示)
- flex: flex-grow flex-shrink flex-basis; (子元素, 子元素该如何分配空间)
- order: number; (子元素, 子元素的顺序该如何排列)
重点
- 在父元素上设置 display: flex 和 flex-wrap: wrap
- 通过 flex 来调整子元素上的空间分配(扩展、收缩比例和伸缩基准值)
- 通过 order 来调整子元素的显示顺序(把 .center 放在中间)
例子
CSS
.box {
display: flex;
flex-wrap: wrap;
text-align: center;
}
.center {
background-color: #f00;
flex: 100% 1;
}
.left, .right {
flex: 100% 1;
}
.left {
background-color: #0f0;
}
.right {
background-color: #00f;
}
@media all and (min-width: 400px) {
.left, .right {
flex: 50% 1;
}
}
@media all and (min-width: 800px) {
.box {
flex-wrap: nowrap;
}
.center {
order: 2;
flex: 1;
}
.left, .right {
flex: 0 0 300px;
}
.left {
order: 1;
}
.right {
order: 3;
}
}
HTML
<div class="box">
<div class="center">
弹性盒子是 CSS3 的一种新的布局模式。
CSS3 弹性盒( Flexible Box 或 flexbox),是一种当页面需要适应不同的屏幕大小以及设备类型时确保元素拥有恰当的行为的布局方式。
引入弹性盒布局模型的目的是提供一种更加有效的方式来对一个容器中的子元素进行排列、对齐和分配空白空间。
</div>
<div class="left">left</div>
<div class="right">right</div>
</div>
原文地址:https://segmentfault.com/a/1190000016829067