【发布时间】:2018-12-16 19:32:49
【问题描述】:
代码中有三个div,在dom中按div-00#排序
我想使用 flexbox(宽度 >= 460px)创建的是以下布局(请看图片)
补充:18-12-16 -
有没有人可以建议如何使用 flexbox 做到这一点?
Tab 顺序存在第二个问题,但希望先对布局进行排序。
在移动设备上(例如 所有的 div 都是 100% 的父 div,排序为 .div-001 -div-002 .div-003。
在桌面上(例如 >= 460 像素) - 在 .div-main:
由于高度不同,我没有使用浮动,因为这发生在桌面上
.
.div-001 -- 位置:右上角。高度:变化。宽度:20%。理想情况下,标签索引应该是 2(因此我使用 flex 来订购这个 '2'),但要知道顺序是按照 DOM 的顺序读出的。
.div-002 -- 位置:左上角。高度:变化。宽度:80%。理想情况下,标签索引应该是 1(因此我使用 flex 来订购这个 '1')
.div-003 -- 位置:右侧(.div-003 正下方)。高度:变化。宽度:20%。理想情况下,标签索引应该是 3(因此我使用 flex 来订购这个 '3')
顺序(以防万一您想知道)很重要。
* {
margin: 0;
padding: 0;
border: 0;
}
a:focus,
a:hover {
color: red;
}
.header,
.footer {
width: 100%;
max-width: 1220px;
margin: 0 auto;
background: #000;
}
.header {
height: 50px;
}
.footer {
height: 20px;
}
.div-main {
width: 90%;
max-width: 1200px;
margin: 0 auto;
padding: 10px 0;
}
.div-main > div {
min-height: 50px;
box-sizing: border-box;
border: 1px solid #f00;
padding: 10px;
}
@media all and (min-width: 460px) {
.div-main {
display: flex;
flex-direction: column;
}
.div-desktop-left {
width: 80%;
margin-right: auto;
}
.div-desktop-right {
width: 20%;
margin-left: auto;
}
.div-001 {
/* example */
height: 70px;
order: 2;
}
.div-002 {
/* example (varying height) */
align-self: flex-start;
/* smaller than .div-001 */
height: 50px;
/* bigger than .div-001 */
/* height: 360px; */
order: 1;
}
.div-003 {
/* example */
height: 20px;
order: 3;
}
}
<header class="header"></header>
<div class="div-main">
<div class="div-001 div-mobile-001 div-desktop-002 div-desktop-right div-desktop-right-001"><a href="#">Desktop link 002</a></div>
<div class="div-002 div-mobile-002 div-desktop-001 div-desktop-left div-desktop-left-001"><a href="#">Desktop link 001</a></div>
<div class="div-003 div-mobile-003 div-desktop-003 div-desktop-right div-desktop-right-002"><a href="#">Desktop link 003</a></div>
</div>
<footer class="footer"></footer>
【问题讨论】: