Javascript 文本区域';设置高度后,父对象的大小调整停止工作
我有一个父div,里面有一个文本区域。动态抓取textarea的一角以调整其大小时,父div也会调整大小。太好了 但是,当我使用javascript设置div的高度时,textarea将不再调整父div 如何使用Javascript设置父div的高度,并且仍然可以从浏览器中调整高度 这只是一个例子。我想调整div中的其他东西的大小,所以我不能只调整textarea的大小并保持div高度为autoJavascript 文本区域';设置高度后,父对象的大小调整停止工作,javascript,html,css,Javascript,Html,Css,我有一个父div,里面有一个文本区域。动态抓取textarea的一角以调整其大小时,父div也会调整大小。太好了 但是,当我使用javascript设置div的高度时,textarea将不再调整父div 如何使用Javascript设置父div的高度,并且仍然可以从浏览器中调整高度 这只是一个例子。我想调整div中的其他东西的大小,所以我不能只调整textarea的大小并保持div高度为auto <style> .parent{ background-color: blue; }
<style>
.parent{
background-color: blue;
}
.child {
background-color: red;
resize: vertical;
}
</style>
<div class="parent" id="container">
<textarea class="child" id="content">
Hello World!
</textarea>
</div>
<button id="btn">
Set Height
</button>
<script>
document.getElementById("btn").addEventListener("click", function() {
document.getElementById("container").style.height = "100px";
document.getElementById("content").style.height = "90px";
});
</script>
.家长{
背景颜色:蓝色;
}
.孩子{
背景色:红色;
调整大小:垂直;
}
你好,世界!
设定高度
document.getElementById(“btn”).addEventListener(“单击”,函数)(){
document.getElementById(“容器”).style.height=“100px”;
document.getElementById(“内容”).style.height=“90px”;
});
如果我理解正确,您希望在单击按钮时根据父对象的大小调整textarea。并在调整大小时在文本区域上调整父对象的高度
如果是,请将.parent
设置为具有高度:自动
,然后单击按钮-设置其.child
元素的高度,而不是设置其高度
document.getElementById(“btn”).addEventListener(“单击”,函数(){
document.querySelector(“.child”).style.height=“100px”;
});代码>
.parent{
背景颜色:蓝色;
高度:自动;
}
.孩子{
背景色:红色;
}
你好,世界!
设置高度
据我所知,在为父div指定固定高度后,您希望能够调整父div内的textarea的大小
这意味着textarea不应使父div溢出。要实现这一点,只需将父div的overflow属性设置为hidden
看到这个了吗
还可以查看一下调整父div的高度后,只需将其设置回auto
。确保你也调整了孩子们的高度,否则它会跳回文本区域的大小
document.getElementById(“容器”).style.height=“自动”代码>
以下是完整的代码:
<style>
.parent{
background-color: blue;
}
.child {
background-color: red;
resize: vertical;
}
</style>
<div class="parent" id="container">
<textarea class="child" id="content">
Hello World!
</textarea>
</div>
<button id="btn">
Set Height
</button>
<script>
document.getElementById("btn").addEventListener("click", function() {
document.getElementById("container").style.height = "100px";
document.getElementById("content").style.height = "90px";
document.getElementById("container").style.height = "auto";
});
</script>
.家长{
背景颜色:蓝色;
}
.孩子{
背景色:红色;
调整大小:垂直;
}
你好,世界!
设定高度
document.getElementById(“btn”).addEventListener(“单击”,函数)(){
document.getElementById(“容器”).style.height=“100px”;
document.getElementById(“内容”).style.height=“90px”;
document.getElementById(“容器”).style.height=“自动”;
});
尽管这实现了我想要看到的,但它对我的用例不起作用。我需要一个可以设置父div高度的答案,因为它里面还有其他东西。好的,所以必须是父div来更改高度。等等,事实上我知道了。设置父元素的高度后,使用document.getElementById(“容器”).style.height=“auto”将其再次重置为自动代码>哦。太棒了!我正要更新我的答案以使用MutationObserver
,但现在看来你自己没事了。对不起,如果我没有把事情说清楚……我会尽量给你一个更详细的解释。我需要的是设置父div的高度,而不是将其“固定”。我想根据用户事件给它一个特定的高度,但仍然可以通过浏览器进行扩展。你的意思是希望父div具有响应性吗?。因此,它应该相对于浏览器窗口大小自动调整大小?您是否尝试过使用最小高度而不是固定高度?
<style>
.parent{
background-color: blue;
}
.child {
background-color: red;
resize: vertical;
}
</style>
<div class="parent" id="container">
<textarea class="child" id="content">
Hello World!
</textarea>
</div>
<button id="btn">
Set Height
</button>
<script>
document.getElementById("btn").addEventListener("click", function() {
document.getElementById("container").style.height = "100px";
document.getElementById("content").style.height = "90px";
document.getElementById("container").style.height = "auto";
});
</script>