有人知道如何使用flexbox创建此布局吗?
文本将放在中间,按钮将放在文本和底部之间。
我现在有这个:
.aligner {
display: flex;
justify-content: center;
flex-direction: column;
align-items: center;
height: 100%;
}

<div class="aligner">
<h3>SUPERMAN</h3>
<p>FTW</p>
<button>BUTTON</button>
</div>
&#13;
这会对齐中心的所有内容,但我只希望文本位于中心,而中心和底部之间的按钮。
答案 0 :(得分:4)
您可以尝试以下布局:
flex: 1
display: flex
和html, body {height: 100% } * { margin: 0; }
.aligner, .below {
display: flex;
justify-content: center;
flex-direction: column;
align-items: center;
}
.aligner {
height: 100%;
}
.aligner::before { content: ''; }
.aligner::before, .below {
flex: 1;
}
的元素。标题上方和下方的元素将占用标题等额的可用空间。所以标题将成为中心。
这些元素也可以是flex容器,您可以根据需要将它们的内容对齐。
<div class="aligner">
<h3>SUPERMAN</h3>
<p>FTW</p>
<div class="below">
<button>BUTTON</button>
</div>
</div>
.grid-item {
height: 180px;
width: 320px;
overflow: hidden;
}
.grid_zoom {
width: 105% !important;
}
.grid-item .grid_pic {
width: 100%;
height: auto;
transition-delay: 1s; /* delays for 1 second */
-webkit-transition-delay: 1s; /* for Safari & Chrome */
-webkit-transition: all 1s ease;
-moz-transition: all 1s ease;
-o-transition: all 1s ease;
transition: all 1s ease;
}
答案 1 :(得分:3)
文本将被放置在中心,按钮正在运行 放在文本和底部之间。
您可以将auto
margins与不可见的弹性项目结合使用来实现布局:
(编辑:我在用示例代码更新问题之前写了这个答案。所以我的代码与问题中的代码不同。但该方法仍适用。)
<div class="container">
<div class="box">BUTTON</div><!-- invisible flex item -->
<div class="box">SUPERMAN</div>
<div class="box">BUTTON</div>
</div>
&#13;
.container > div:nth-child(1) { /* margin-top: auto; */ visibility: hidden; }
.container > div:nth-child(2) { margin-top: auto; }
.container > div:nth-child(3) { margin-top: auto; /* margin-bottom: auto; */ }
&#13;
此外,通过两次微调,底部项目可以与边缘齐平。
justify-content: space-between
或者,只需使用.container > div:nth-child(1) { visibility: hidden; }
/* .container > div:nth-child(2) { margin-top: auto; } */
/* .container > div:nth-child(3) { margin-top: auto; } */
.container {
display: flex;
flex-direction: column;
align-items: center;
background-color: yellow;
height: 100%;
box-sizing: border-box;
justify-content: space-between; /* NEW */
}
:
bugReport:
path: /bugReport/{eStatusCode}/{eMessage}
defaults: { _controller: utilisateurBundle:ExceptionReport:bugReport }
requirements:
eMessage: .[a-zA-Z1-9\-_\/?;!"`'()`\|{}]+
options:
expose: true
有关更多对齐选项,请参阅:Methods for Aligning Flex Items