在Flexbox中有“主轴”和“交叉轴”的概念。一般来说,在浏览器上,“主轴”应该是水平的,大概是因为台式机和笔记本电脑的屏幕通常是横向的,而在“反应本地人”中,“主轴”通常是垂直的,因为它主要是针对手机的,而手机通常是纵向的。无论哪个是“主轴”,另一个就是所谓的“交叉轴”。
看起来,在Flexbox中,许多影响主轴的属性都有一个不同名称的对应属性,它会影响横轴。
有一个名为flex-grow的属性,另一个名为flex的属性可以同时完成flex-grow和其他一些属性的工作。
我不清楚的是,这个flex-grow是具有对应属性的属性之一,还是一个例外。flex属性也是如此。
我问这个问题的一个原因是,我经常读到,在试图正确布局时,可能需要将元素及其所有计数器/父元素的flex设置为1。但是,在你的布局中哪些地方需要达到相同的目标,但在横轴上呢?
发布于 2017-09-26 05:48:49
flex-grow (和简写flex)属性总是影响主轴,没有对应的,并设置了如何水平地分配自由空间,用于挠性行方向,以及如何垂直分配挠性列方向。
相比较而言,例如,justify-content属性影响主轴,有一个对应的align-items,它影响交叉轴,其中两者都设置flex项的对齐方式。
但是,这里可能会令人困惑的是,基于流的方向,它们会水平地或垂直地影响挠性项。
注意,主轴和横轴与屏幕是否宽或高无关。
它与流动方向有关,因此对于默认的弯曲行方向,主轴是水平的,交叉轴是垂直的,对于弯曲的圆柱方向,主轴是垂直的,交叉轴是水平的。
Flexbox完整指南是一篇非常好的文章,它更深入地解释了这一点。
发布于 2022-02-01 01:24:40
如果您希望修改交叉轴中的flex项(默认情况下是垂直的,或者如果flex容器具有flex-direction: column;集,则是水平的),那么请考虑使用align-self属性。若要使挠性项在横轴方向上“增长”,则该项上的align-self: stretch;应该可以工作。这只有在容器已经将align-items设置为类似center的情况下才有用。
请注意,这类似于交叉轴上的“flex”,但绝对不是一回事。有关详细信息,请参阅完整指南:https://css-tricks.com/snippets/css/a-guide-to-flexbox/
.container {
display: flex;
background-color: tan;
align-items: center;
}
.small-stretched-item {
background-color: green;
align-self: stretch;
}
.tall-item {
height: 200px;
background-color: orange;
}
.small-unstretched-item {
background-color: pink;
}<div class="container">
<span class="small-stretched-item">Small, stretched item</span>
<div class="tall-item">Tall item</div>
<span class="small-unstretched-item">Small, unstretched item</span>
</div>
https://stackoverflow.com/questions/46417543
复制相似问题