css - CSS 响应式改变 flex 布局
问题描述
我想创建这个 CSS 布局:https://imgur.com/Nj1TzmN
对于 PC 版:有一大列 (1) 和第二大列,其中包含 (2)、(3)、(4) 作为行。
移动版:共有三行,第一行分为两(1)、(2),第二行包含(3),第三行包含(4)。
这是我的测试:https://codepen.io/vanicf01/pen/KKwKWpq
此处的 HTML 代码:
<div class="flexbox">
<div class="one item">1</div>
<div class="two item">2</div>
<div class="three item">3</div>
<div class="four item">4</div>
</div>
这里的 CSS 代码:
.flexbox {
display: flex;
width: 300px;
}
.item:nth-of-type(1) { flex-grow: 3; }
.item:nth-of-type(2) { flex-grow: 1; }
.item:nth-of-type(3) { flex-grow: 1; }
.item:nth-of-type(4) { flex-grow: 1; }
.one {
background-color: red;
flex-grow: 3;
}
.two {
background-color: blue;
}
.three {
background-color: green;
}
.four {
background-color: yellow;
}
.item {
padding: 10px;
}
是否可以创建此布局?
解决方案
试试这个: HTML:
<div class="flex-container">
<div class="flex-container__first">
1
</div>
<div class="flexbox">
<div class="flex-mobile">
<div class="one item">1</div>
<div class="two item">2</div>
</div>
<div class="three item">3</div>
<div class="four item">4</div>
</div>
</div>
CSS:
.flex-container{
display: inline-flex;
background:pink;
}
.flex-container__first{
min-width:50%;
align-self: center;
@media (max-width: 600px) {
display: none;
}
}
.flexbox {
display: flex;
flex-direction:column;
width: 300px;
flex-wrap:wrap;
}
.flex-mobile{
display:inline-flex;
width:100%;
}
.one {
background-color: red;
width:100%;
@media (min-width: 600px) {
display: none;
}
}
.two {
background-color: blue;
width:100%;
}
.three {
background-color: green;
}
.four {
background-color: yellow;
}
.item {
padding: 10px;
}
推荐阅读
- sql-server - 将多个表中的值按公共列分组
- ios - NativeScript ListView 滚动事件
- java - 哥德巴赫猜想(java)
- python - 准确地将字典返回到元组
- contacts - 提交托管在 DataFire 上的联系表单时出现“找不到路径:POST /”错误
- google-cloud-platform - Google Stackdriver Logging 向高级过滤器添加评论
- ios - 如何将 CALayer 的 contentGravity 变量设置为“resizeAspectFill”?
- git - git svn fetch 期间断电后出现致命错误
- linux - 如何添加各种 .csv 文件的所有列的值,仅保持单个标题和第一个标签列相同?
- c# - 访问 ControlTemplate 中的 Grid