我在一个div中有一个文本区域,我希望文本区域的高度与div容器的高度相匹配。
目前,宽度非常合适,但是文本框(开始为空)只占div高度的20%左右。
当ajax调用抓取一些文本并填充textarea时,textarea高度保持在div的20%左右,并提供滚动条。
我怎样才能改变我的CSS来确保文本区域的高度总是匹配它的div容器的高度?
#answerBox {
width: 100%;
height: 100%;
box-sizing: border-box;
margin: 5px auto;
padding: 5px;
font-size: 10px;
text-align: left;
position: relative;
}
#answerBoxDiv {
width: 90%;
min-height: 50%;
margin: 5px auto;
border: 4px solid #00bfb6;
padding: 5px;
font-size: 10px;
text-align: left;
position: relative;
}
<div id="answerBoxDiv">
<textarea id="answerBox"></textarea>
</div>
7条答案
按热度按时间hk8txs481#
您需要显式地设置父容器的高度(无论是px还是rem等)-这样的高度:100%的文本区域将填充到容器中。
对文本内容的展开不能用简单的CSS来完成--你需要JS来确定内容的高度,并相应地调整父容器。
保持身高的唯一方法:100%在父容器上是它的祖先有一个高度设置(例如100 vh)-这样浏览器可以确定每个DOM元素的高度和大小的文本区域递增。
UPDATE -我已经添加了一个js函数来自动增加输入的父容器的高度。(文本区域的高度自动增加,因为它是父容器的100%。这将需要按摩-但当你在文本区域中键入内容时,高度将自动扩展。
wnrlj8wa2#
您可以使用CSS高度:100%;属性,使其填充其父容器#answerBoxDiv的整个高度。此外,您可以从#answerBoxDiv中删除min-height属性,以确保容器的高度始终等于其内容的高度。
以下是更新的CSS:
以及更新的HTML:
hgqdbh6s3#
百分比高度不适用于最小高度父对象,您需要为父对象指定一个高度,或者可以使用flex:
o2g1uqev4#
你可以试试这个
vvppvyoh5#
尝试保持文本区域的最小高度为100%或附近或尝试在文本区域使用
object-fit: contain(or cover)
wf82jlnq6#
为#answerBoxDiv父div给予特定的
height
。这样您将获得此div的适当高度。olqngx597#