Html 如何使用flexbox垂直包装内容?
我在flexbox容器中有三个div 我希望三个Html 如何使用flexbox垂直包装内容?,html,css,flexbox,Html,Css,Flexbox,我在flexbox容器中有三个div 我希望三个div显示如下: +-----------------------------------------------+ | +-----------------+-----------------+ | | | | | | | | | | | | +----------
div
显示如下:
+-----------------------------------------------+
| +-----------------+-----------------+ |
| | | | |
| | | | |
| +-----------------+-----------------+ |
| |
| +-----------------------------------+ |
| | | |
| | | |
| +-----------------------------------+ |
| |
+-----------------------------------------------+
因此,容器必须垂直地适应其内容,但仅适应其内容,而不仅仅是内容
我在div
之间得到了很大的空白,而容器得到了父容器的100%高度
我没有将height
属性放入容器,也没有设置height:auto代码>但它们都不起作用
以下是我的代码:
*{
框大小:边框框;
}
html,正文{
宽度:100%;
保证金:0;
}
#容器{
显示器:flex;
位置:绝对位置;
排名:0;
右:0;
底部:0;
左:0;
保证金:自动;
证明内容:中心;
对齐项目:居中;
柔性包装:包装;
最大宽度:450像素;
边框:1px实心;
}
#第一组{
宽度:50%;
高度:155px;
背景颜色:蓝色;
}
#第二组{
宽度:50%;
高度:155px;
背景色:红色;
}
#第三组{
宽度:70%;
高度:155px;
背景颜色:绿色;
}
创建flex容器时,初始设置为对齐内容:拉伸
这会导致多行flex项在容器的整个长度上分布
使用#container
上的align content:flex start
覆盖此设置
要使容器垂直收缩包装其内容,需要删除此规则:
#container { bottom: 0; }
由于#容器
是绝对定位的,并且没有定位的父元素,这将为#容器
建立包含块,因此默认包含块成为初始包含块或视口
这就是容器从上到下伸展的原因,如您应用的黑色边框所示。一旦删除bottom:0
,容器的行为将更像height:auto
在此处了解有关CSS定位的更多信息:谢谢!这是非常接近,但不完全是我要找的。它仍然不能使容器的高度适应其内容物。只需将内容放在一起(两种方法之一)。看,我有bottom:0
,因为我想让容器在屏幕上垂直和水平居中。我想我现在必须找到另一种方法使它居中。要使容器在屏幕上居中,只需使用另一个flex容器:谢谢!对不起,回信太晚了。我考虑过,但我也怀疑在主体
标签上添加flex
是否是个好主意。现在你澄清了我的想法。再次感谢:)当然。你是我最好的帮手之一:)