html - 使用 flex 更改块顺序
问题描述
如何做这种标记?因此,当分辨率低于 640 像素时,容器编号 2 将移至底部。
我知道我应该使用@media (max-width:600px) {}
,但我真的不明白如何将块 #2 从“右列”移到底部
我的示例小提琴是https://jsfiddle.net/benderlio/tewzvLxf/3/
#container {
display: flex;
}
.column.left {
width: 60%;
flex: 0 0 1;
background-color: red;
}
.column.right {
padding-top: 30px;
text-align: center;
width: 40%;
flex: 0 0 1;
}
.box {
border: 1px solid red;
margin: 20px;
padding: 20px;
}
<div id="container">
<div class="column left">
</div>
<div class="column right">
<div class="box">1</div>
<div class="box">2</div>
<div class="box">3</div>
</div>
</div>
解决方案
我会使用带有媒体查询的网格并删除列 div:
* {
box-sizing: border-box;
}
#container {
width: 100%;
display: grid;
grid-template-columns: 1fr 1fr;
grid-template-areas:
"a b"
"a c"
"a d";
}
.box {
border: 1px solid red;
margin: 20px;
padding: 20px;
}
.box1 {
grid-area: a;
}
.box2 {
grid-area: b;
}
.box3 {
grid-area: c;
}
.box4 {
grid-area: d;
}
@media (max-width:640px) {
/* adding the commented out areas will allow box1 to keep it's height like in your images so there is a space below box 4 */
#container {
/* grid-template-rows: 1fr 1fr 1fr; */
grid-template-areas:
"a b"
"a d"
/* "a ." */
"c c";
}
}
<div id="container">
<div class="box box1">
1
</div>
<div class="box box2">2</div>
<div class="box box3">3</div>
<div class="box box4">4</div>
</div>
推荐阅读
- postgresql - 如何在我的计算机上本地设置 Postgres SQL 数据库?
- c# - C#中树莓派的CPU温度
- java - Android成功构建了gradle但没有在模拟器上安装应用程序
- linux - 即使在内存压力下,如何将可执行代码保留在内存中?在 Linux 中
- amazon-web-services - 如何使用 Cloudformation 在 AWS API Gateway 上设置代理
- java - 无法解析扫描仪变量
- azure - 使用 PSKeyVaultCertificate 向 Azure 服务主体添加身份验证时出现请求错误
- python-3.x - 将日期时间转换为时间戳 python
- php - 发送新消息时更新页面
- c++ - Lambda 类型推导