【发布时间】:2018-06-09 00:23:15
【问题描述】:
在父元素上与display: flex; 和display: grid; 斗争了几天,试图使这个布局工作。这是我试图创建的目标:
这种布局和流程是否适用于移动设备和桌面设备?
HTML
<div class="item-table">
<div class="a">a</div>
<div class="b">b</div>
<div class="c">c</div>
<div class="d">d</div>
<div class="e">e</div>
<div class="f">f</div>
</div>
SCSS
.item-table {
display: flex;
flex-wrap: wrap;
align-items: stretch;
align-content: flex-start;
@media screen and (max-width: 600px) {
align-items: flex-start;
justify-content: flex-end;
padding-left: 10px;
padding-right: 10px;
}
.a {
flex: 1 8%;
border: 1px solid red;
}
.b {
flex: 1 30%;
border: 1px solid red;
@media screen and (max-width: 600px) {
flex: 1 50%;
}
}
.c {
flex: 1 100%;
border: 1px solid #f00;
@media screen and (max-width: 600px) {
order: 4;
flex: 0 60%;
margin-left: 0;
align-self: left;
}
}
.d {
flex: 1;
border: 1px solid red;
@media screen and (max-width: 600px) {
order: 6;
flex: 0 20%;
}
}
.e {
flex: 1;
border: 1px solid red;
@media screen and (max-width: 600px) {
order: 5;
flex: 0 20%;
}
}
.f {
flex: 1;
border: 1px solid red;
@media screen and (max-width: 600px) {
flex: 0 20%;
order: 3;
}
}
}
A 列应为 8%。百分比大多是估计和四舍五入的。不寻求绝对完美,只是试图使比例接近发布的示例。
我遇到的问题是C、D、E 通常在 600 像素以下堆叠在 F 以下,因为它们在使用 display: flex 时共享一行。
【问题讨论】:
-
既然你可以拥有它的模型/线框那么它是可能的
-
仅仅因为我可以在 illustrator 上创建它并不意味着它可以使用 html/css 对吗?
-
我很确定您看到了比这更复杂的布局 ;) ...顺便说一下,如果您苦苦挣扎了几天,请告诉我们您已经完成了什么?
-
顺便说一句,答案是是的。
-
@cale_b 查看更新,谢谢