gpt4 book ai didi

html - 具有四个 div 的 Flex 容器,需要三列,第二列有两行

转载 作者:太空狗 更新时间:2023-10-29 15:12:39 25 4
gpt4 key购买 nike

对于页面上的一个部分,我试图显示两个矩形 div 堆叠在两个方形 div 之间,两侧的大小与两个堆叠 div 的高度一样大,这些 div 内部是 img 标签。

我正在使用这个标记,因为在移动设备上我希望能够将它们放在一个未包装的 flex 行上,并带有一个 overflow: hidden 父级,这样我就可以使用滑动代码来翻译 X -轴。我在使用 flexbox(无网格,需要支持 IE11)创建带有此标记的桌面布局时遇到问题。有人用这个标记做过这个布局吗?谢谢。

 <div class="flex_container">
<div class='flex_child square'>
<img...>
</div>
<div class='flex-child rect'>
<img...>
</div>
<div class='flex-child rect'>
<img...>
</div>
<div class='flex-child square'>
<img...>
</div>
</div>

Example by image

最佳答案

假设这将是您页面的主要布局,您可以尝试设置固定高度并使用 flexbox 的列方向:

.flex_container {
height: 100vh; /*adjust this value like you want*/
display: flex;
flex-direction: column;
flex-wrap:wrap;
}
.flex_child {
background:purple;
border:2px solid #fff;
box-sizing:border-box;
width:calc(100% / 3);
}
.square {
flex:1 1 100%;
}
.rect {
flex:1 1 47%;
}

body {
margin: 0;
}
<div class="flex_container">
<div class='flex_child square'></div>
<div class='flex_child rect '></div>
<div class='flex_child rect '></div>
<div class='flex_child square'></div>
</div>

如果你想要更好的浏览器支持,你可以使用 float/inline-block,方法是稍微调整开始时制作 2 个方 block 的类:

.flex_container {
height: 100vh; /*adjust this value like you want*/
}
.flex_child {
background:purple;
border:2px solid #fff;
box-sizing:border-box;
width:calc(100% / 3);
height:100%;
}
.square:nth-child(1) {
float:left;
}
.square:nth-child(2) {
float:right;
}
.rect {
display:inline-block;
height:50%;
vertical-align:top;
}

body {
margin: 0;
}
<div class="flex_container">
<div class='flex_child square'></div>
<div class='flex_child square'></div>
<div class='flex_child rect '></div>
<div class='flex_child rect '></div>
</div>

如果您也不能更改类,请使用一些负边距来纠正最后一个元素的位置:

.flex_container {
height: 100vh; /*adjust this value like you want*/
}
.flex_child {
background:purple;
border:2px solid #fff;
box-sizing:border-box;
width:calc(100% / 3);
height:100%;
}
.square:first-child {
float:left;
}
.square:last-child {
float:right;
margin-top:-50vh;
}
.rect {
display:inline-block;
height:50%;
vertical-align:top;
}

body {
margin: 0;
}
<div class="flex_container">
<div class='flex_child square'></div>
<div class='flex_child rect '></div>
<div class='flex_child rect '></div>
<div class='flex_child square'></div>
</div>

关于html - 具有四个 div 的 Flex 容器,需要三列,第二列有两行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53013372/

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