首先编辑:如果我使用align-items: stretch;
我可以拉伸我的弹性项目,我不知道该怎么做,但我正在玩它,并且我认为我应该将此信息添加为编辑,align-items: stretch
值,拉伸弹性项目。
第二次修改:好的可能是我不清楚,我不是在寻找解决方案,我只是想知道为什么它没有充满理由 - 内容,'它,我可以通过编辑代码解决我自己的这个问题,但我想知道原因,为什么它的行为方式。
我已经阅读了这个答案Flex item not filling screen height with "align-items: stretch"
但我的问题有所不同,只要我添加align-items
,flex-items停止拉伸,在添加此属性之前它们工作正常,我知道我可以通过向100%
添加高度来解决此问题,但我对此不感兴趣,我想知道它为什么会这样做。
注意:我正在使用chrome
我的代码请阅读代码中的评论
.container {
font-size: 36px;
height: 800px;
border: 1px solid black;
display: flex;
flex-wrap: wrap;
align-items: center;
/* as soon as i add this align-items property or my items
stop streching, i don't get it, if use value stretch it streches
the my items, please read the note first edit in the question,
it is at the top */
align-content: stretch;
}
.box {
width: 400px;
color: #fff;
}
.box1 {
background: blue;
}
.box2 {
background: red
}
.box3 {
background: yellow
}
.box4 {
background: black
}

<div class="container">
<div class="box box1">Home</div>
<div class="box box2">Menu</div>
<div class="box box3">About Us</div>
<div class="box box4">Contact Us</div>
</div>
&#13;
答案 0 :(得分:2)
box
件商品同时包含stretch
和center
。
合并align-items
和align-content
不会发生这种情况,因为align-items
适用于单行的Flex项目,align-content
适用于它们。
注意,您不需要添加align-items/content
并将其值设置为stretch
,这是默认值
对于解决方案,将box
设置为height: 100%
会使它们看起来拉伸,但与使用相比,会产生完全不同的结果align-items / content&#39> stretch
值。
固定高度它们将是设定高度,无论是否有2行或更多行,stretch
乳清将调整其高度以适合其父级。简单地说,2行将使它们高50%,3行高33.33%等等。
假设您想要居中的box
中的文本,以及要展开的box
,只需将box
设为灵活容器即可。
将display: flex; align-items: center
添加到box
,它可能会按照您想要的方式进行布局。
如果您希望文字也水平居中,我在这里添加了justify-content: center;
,您可以保留或删除。
.container {
font-size: 36px;
height: 800px;
border: 1px solid black;
display: flex;
flex-wrap: wrap;
}
.box {
width: 400px;
color: #fff;
display: flex;
align-items: center; /* vertically center */
justify-content: center; /* horizontally center */
}
.box1 {
background: blue;
}
.box2 {
background: red
}
.box3 {
background: yellow
}
.box4 {
background: black
}
&#13;
<div class="container">
<div class="box box1">Home</div>
<div class="box box2">Menu</div>
<div class="box box3">About Us</div>
<div class="box box4">Contact Us</div>
</div>
&#13;
答案 1 :(得分:0)
如果要扩展项目,而不是stretch
值,则需要对align-items
属性使用center
值。因此,如果您只是将align-items:center;
更改为align-items:stretch;
,它将解决您的问题。
答案 2 :(得分:0)
我不确定你是否试图将盒子对准中心并伸展?您应该尝试将justify-content:center添加到.container:
justify-content: center;
带有标记和css的工作笔,您添加了https://codepen.io/anon/pen/dRxyVG
align-items将沿着十字轴对齐您的方框,而justify-content将沿着主轴对齐它们。
align-content更像是调整与flex容器相关的行或列。如果flex-direction是行,则垂直方向,如果flex-direction是列,则为水平。使用align-items调整主轴上的行项目,如果你使内容随机大小,你可能会看到它们如何更好地互动:https://codepen.io/anon/pen/weVBBE
当您设置align-items时:center;你告诉物品与中心对齐,它们不会伸展。
如果您尝试将文本放在框的中间并让它们伸展,则需要将其应用于子容器,即.container的.box: https://codepen.io/anon/pen/LLwEGW
答案 3 :(得分:-1)
从您的代码中删除高度和宽度。如果你想在 display flex 的 align-items 属性中使用拉伸值,你必须确保你没有给出预定义的值。在这种情况下,它将忽略 align 项中给出的值并运行代码。