我想有两列等高,它们的内容应该居中对齐,因此在每个div的正中间。
问题: “等高”和“中间对齐”似乎将自己排除在外,一个与另一个不兼容。
问题: 如何创建一个具有两列的行,这两列具有不同的宽度,相同的高度,并且其内容居中于每一列的中间?
<!-- 'middle aligned' and 'equal height' don't like each other ? -->
<div class="ui equal height center aligned grid">
<div class="row">
<div class="twelve wide purple column">
<p>Text Text Text</p>
<p>Text Text Text</p>
<p>Text Text Text</p>
<p>Text Text Text</p>
</div>
<div class="four wide red column middle aligned">
<div class="row">Forward</div>
</div>
</div>
</div>
http://jsfiddle.net/kjjd66zk/1/
此布局的关键是将相等的高度应用于主伸缩容器。
然后,将flex项目嵌套在flex容器中,以使flex项目的内容居中。
因此,顶层创建相等的高度。第二级进行居中。
(有关更多详细信息,请参阅底部的注释。)
这是一个基于您的代码结构的示例:
body {
height: 300px; /* for demo purposes */
color: white;
}
flex-container {
display: flex; /* primary flex container */
flex-direction: row; /* horizontal alignment of flex items
(default value; can be omitted) */
align-items: stretch; /* will apply equal heights to flex items
(default value; can be omitted) */
height: 100%;
}
flex-item {
display: flex; /* nested flex container */
flex-direction: column; /* vertical alignment of flex items */
justify-content: center; /* center flex items vertically */
align-items: center; /* center flex items horizontally */
}
flex-item:first-child {
flex: 3; /* consume 3x more free space than sibling */
background-color: #a333c8;
}
flex-item:last-child {
flex: 1;
background-color: #db2828;
}
<flex-container>
<flex-item><!-- also flex container -->
<p>Text Text Text</p>
<p>Text Text Text</p>
<p>Text Text Text</p>
<p>Text Text Text</p>
</flex-item>
<flex-item><!-- also flex container -->
<div>Forward</div>
</flex-item>
</flex-container>
人们有时将弹性项目及其内容视为一个要素。这是不正确的。
flex容器的HTML结构具有三个级别:
因此,项目内部的内容不代表该项目;它代表一个单独的元素。
如果项目内的内容是文本,则它将成为匿名元素。
从flexbox规范:
4.弹性项目
flex容器的每个流入子元素都将成为一个flex项目,而直接包含在flex容器内的每个连续文本都将包裹在一个匿名flex项目中。
这就是为什么在上面的解决方案中,flex项变为flex容器。它允许在flex项目(内容)的子项上使用flex属性。
问题内容: 我有一个简单的2列布局,我想使用Flexbox获得相等的高度: 的HTML 的CSS 这适用于Firefox,但不适用于Chrome: 我尝试了一些方法(包括供应商前缀),但仍然无法正常工作。 问题答案: 要使用Flexbox创建两个相等的列: 父容器得到 每列都是由div创建的,它们可以增长/收缩 拉伸第一列的子级: 还提供了第一列,以便其子元素具有柔韧性并可以成长 旁边的孩子被给予
问题内容: 我要在布局中对齐三个元素。 首先,我有一个div来提供反馈,然后是一个搜索输入,然后是一个div元素来提供建议。 我希望第一个和最后一个元素的宽度为20%,搜索输入的宽度为60%。使用Flexbox可以实现我想要的。 但是有一个功能可以将所有div增长到最高元素 。这意味着当搜索结果弹出时,反馈和建议元素的高度会随着搜索div的增加而增加,从而导致布局混乱。 有没有技巧可以不增加具有最
问题内容: 如何使用flexbox在容器内水平和垂直居中div。在下面的示例中,我希望每个数字都彼此相邻(按行),并水平居中。 问题答案: 我认为您想要以下内容。 你的元素应该是块级(而非)如果你想要的高度和顶部/底部填充,以正常工作。 另外,在上,将宽度设置为而不是。 您的属性很好。 如果您希望垂直居中于视口中,请为和分配100%的高度,然后将页边距清零。 请注意,需要一个高度才能看到垂直对齐效
如何使用FlexBox在容器内水平和垂直地居中div。在下面的例子中,我希望每一个数字在彼此下面(在行中),水平居中。 null null http://codepen.io/anon/pen/zlxbo
问题内容: 我的布局有一个容器flex-container和一个孩子。 HTML: 容器和孩子的身高未知。目标是: 如果孩子的身高低于容器,则其水平和垂直居中。 如果孩子的身高大于容器,则它会调整到顶部和底部,我们可以滚动。 方案: 在此处输入图片说明 使用flexbox将元素居中的最快方法是: 但是,如果容器的子代具有更高的高度,则该子代将无法 正确显示。子项显示为割伤(仅顶部)。 问题答案:
问题内容: 我想有A B和C中间对齐。 我如何才能D完全右移? 问题答案: 以下是实现此布局的五个选项: CSS定位 带有不可见DOM元素的Flexbox 带有不可见伪元素的Flexbox Flexbox与 flex: 1 CSS网格布局 方法1:CSS定位属性 应用于容器。 应用于项目D。 现在,此项目已完全放置在flex容器中。 更具体地说,项目D从文档流中删除,但停留在最接近的祖先的范围内。