gpt4 book ai didi

html - 如何使用 flexbox 获得三列两行 (1 x 2 x 2)

转载 作者:太空宇宙 更新时间:2023-11-04 08:22:26 24 4
gpt4 key购买 nike

如果可能的话,我想用 Flex 实现以下结果。知道如何使用 CSS 完成此操作,但不太熟悉 Flex。我想在 flex 中这样做的原因是为了强制自己编写简洁且更易于维护的代码。

enter image description here

.banner {
width: 20%;
height: 100%;
position: relative;
float: left;
overflow: hidden;
}

.item {
height: 50%;
width: 33.33%;
float: left;
position: relative;
}

.inner-item-block {
height: 100%;
width: 80%;
float: left;
position: relative;
}

.inner-line {
border-right: 1px solid #dedede;
border-bottom: 1px solid #dedede;
height: 100%;
position: relative;
display: flex;
align-items: center; /* center child elements */
}
<div class="item-block">
<div class="banner banner3">
</div>
<div class="inner-item-block">
<div class="item">
<div class="inner-line">
</div>
</div>

<div class="item">
<div class="inner-line">
</div>
</div>

<div class="item">
<div class="inner-line">
</div>
</div>

<div class="item">
<div class="inner-line">
</div>
</div>
</div>
</div>

最佳答案

如果您可以在父元素上设置固定高度,那么您可以使用 Flexbox 来做到这一点。您可以设置 flex-direction: columnflex-wrap: wrap 并使第一个子元素占据 100% 的高度。

* {
box-sizing: border-box;
}
body {
margin: 0;
}
.parent {
display: flex;
flex-direction: column;
height: 100vh;
flex-wrap: wrap;
}
.parent > div {
flex: 0 0 50%;
width: 33.33%;
border: 1px solid black;
}
div.first {
flex: 0 0 100%;
display: flex;
align-items: center;
justify-content: center;
}
<div class="parent">
<div class="first">First</div>
<div></div>
<div></div>
<div></div>
<div></div>
</div>

创建此布局的新选项是Grid-layout,您只需在第一个子元素上设置grid-row: span 2

* {
box-sizing: border-box;
}
body {
margin: 0;
}
.parent {
display: grid;
grid-template-columns: repeat(3, 1fr);
grid-auto-rows: minmax(100px, auto);
}
.parent > div {
border: 1px solid black;
}
div.first {
grid-row: span 2;
}
<div class="parent">
<div class="first">First</div><div></div><div></div><div></div><div></div>
<div class="first">First</div><div></div><div></div><div></div><div></div>
</div>

关于html - 如何使用 flexbox 获得三列两行 (1 x 2 x 2),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45442974/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com