【发布时间】:2018-02-23 20:42:08
【问题描述】:
考虑以下页面,该页面显示一行文本,其下方带有 <textarea>。
* {
box-sizing: border-box;
}
html, body {
height: 100%;
margin: 0;
}
.outer {
background-color: #eee;
display: flex;
flex-direction: column;
height: 100%;
padding: 10px;
}
.expand {
flex-grow: 1;
}
textarea {
height: 100%;
width: 100%;
}
<div class="outer">
<p>
Nice little wall of text.
</p>
<div class="expand">
<textarea></textarea>
</div>
</div>
预期的行为是让文本区域占据文本行下方页面的剩余高度。使用 flexbox,我可以让.expand 元素占据页面的剩余高度。然而,尽管在 textarea 上设置了height: 100%;,但它拒绝占据其父级的全部高度。
为什么这不起作用?如何让 textarea 填充其父级?
【问题讨论】:
-
我有点困惑;你想知道为什么它不会在父级没有
flex-grow: 1的情况下扩展到全高? -
@TylerH 它不会扩展 with
flex-grow: 1;在父级上设置。 -
啊,它正在正常工作,直到您手动调整它的大小,至少在 Firefox 中是这样。 IIRC,手动调整大小后不再自动调整。
标签: css google-chrome flexbox textarea