【发布时间】:2019-03-23 22:52:19
【问题描述】:
我有一个如下图所示的 flexbox 布局:
html {
height:100%;
width:100%;
}
body {
display:flex;
flex-direction:column;
align-items:stretch;
height:100%;
width:100%;
margin:0;
background-color:grey;
}
header {
background-color:green;
height:3em;
flex:0 0 auto;
}
main {
display:flex;
flex:1 1 auto;
overflow:hidden;
background-color:yellow;
}
nav {
flex:0 0 100px;
overflow:auto;
background-color:grey;
}
#wrapper {
flex: 1 1 auto;
display: flex;
align-items: stretch;
flex-direction: column;
background-color:red;
}
#content {
flex: 1 1 auto;
overflow:auto;
background-color:white;
}
footer {
height: 1em;
flex: 0 0 auto;
background-color:blue;
}
<header>header</header>
<main>
<nav></nav>
<div id="wrapper">
<div id="content">
0<br>1<br>2<br>3<br>4<br>5<br>6<br>7<br>8<br>9<br>10<br>11<br>12<br>13<br>14<br>15<br>16<br>17<br>18<br>19<br>20<br>21<br>22<br>23<br>24<br>25<br>26<br>27<br>28<br>29<br>
</div>
<footer></footer>
</div>
</main>
滚动按预期工作,我看到从 0 到 29。
但是如果我有一个 29 行,我怎样才能使这一行在内容中居中对齐?
我尝试在content 上设置display:flex 和align-items:center,这适用于单行,但在内容长的情况下会使内容的顶部消失。
一行的期望结果:
【问题讨论】:
-
你能附上你想要实现的图像吗?
-
可能是因为
。他们也变得居中,这可能会弄乱布局。尝试以其他方式将它们分开 -
当内容是表单时我也有同样的问题
-
@Carlo 使用
span而不是<br>
标签: html css flexbox vertical-alignment