【发布时间】:2015-01-15 00:12:58
【问题描述】:
我正在使用弹性框将两个项目对齐到容器的左右两侧,同时垂直居中对齐它们。这是我想要实现的一个非常简单的示例。
HTML:
<div class="container">
<div class="first"></div>
<div class="second"></div>
</div>
CSS:
.container {
width:100%;
display: flex;
flex-direction: row;
flex-wrap: wrap;
justify-content: space-between;
align-items: center;
}
.first {
background-color: yellow;
width: 200px;
height: 100px;
}
.second {
background-color: blue;
width: 200px;
height: 100px;
}
如果屏幕足够宽以在一行中容纳两个内部 div,这将非常有效。但是,当屏幕尺寸很小(例如手机)并且 div 换行到第二行时,第二行也会与左侧对齐(即flex-start)。如何强制第二个 div 始终与右边框对齐,无论它是在第一行还是包裹在第二行?
编辑: 在示例中,我为两个子元素分配了固定宽度 - 这只是为了简单起见。在现实生活中的应用程序中,所有宽度都是根据运行时从数据库中读取的内容动态变化的。因此,任何基于固定尺寸的解决方案都行不通。
【问题讨论】:
-
我认为您对
align-self所做的事情感到困惑。该属性是指项目如何沿交叉轴对齐(因为您使用行作为flex-direction,所以交叉轴指的是垂直轴)。到目前为止还没有justify-self属性。见:css-tricks.com/snippets/css/a-guide-to-flexbox -
@Terry 你说得对,我很困惑。我相应地更新了我的问题。尽管如此,我仍然有必须将第二个 div 向右对齐的问题,无论它是否在环绕的第一行。