【发布时间】:2021-01-22 02:10:14
【问题描述】:
我有一个包含两列的页面。我想 textarea 高度模仿左列高度。网页加载时左栏很短,但是当用户开始扩展各种属性(复选框+下拉菜单)时,它会根据隐藏的 div 增长。但是我的 textarea 在右栏中仍然很小,使其静态变大看起来并不好。 我希望它按左列高度增长。不知道如何实现。
编辑:
将height: 100%; 添加到 textarea 后,它就解决了列增长的问题。
但是我又遇到了两个问题。
- 右列中的文本区域在页面加载时与该列重叠。当我尝试调整大小时,它会突然正确跳转到列。奇怪的行为。 here is the pic - textarea overlaps column
- 左列上下文未正确对齐。我将如何对齐或证明两列的上下文,使它们最终像这样: here is the pic - final look
我的 CSS:
body {
height: 100%;
position: relative;
background: #000000;
color: #66adff;
font-size: 105%;
font-family: serif, Arial, Helvetica
}
.column {
border: 5px solid #333;
}
.container{
display: flex;
}
.columnleft {
width: 45%;
padding: 10px;
display: table-cell;
}
.columnright {
width: 45%;
padding: 10px;
display: table-cell;
}
textarea.out {width: 100%; height: 100%; box-sizing: border-box;}
编辑 2: 问题 1 - 我在列内有文本将区域向下推 问题 2 - 使用适当的填充修复了所有问题
感谢大家的回复。
【问题讨论】:
-
据我所知,如果您的函数不适合您,那是因为您使用的是 document.getElementById('columnLeft'),但是您将 columnLeft 定义为一个类而不是一个身份证。您可能希望使用 document.querySelector('.columnLeft') 和 document.querySelector('.columnRight') 在页面上获取这些类的第一个实例,以更改它们的样式。或者,如果您希望这些类的所有实例作为数组使用 document.querySelectorAll('.columnLeft') 和 document.querySelectorAll('.columnRight')。从那里你可以遍历每个元素并对其进行操作。
-
基本上使用 flex 的主要优点之一是我们根本不需要这个 js 代码在一行中具有相同的高度元素,请您分享您的 HTML 代码中的更多内容,或者创建一个可重复的例子
-
如果你申请
flex,为什么要使用float?为什么不用css-grid不用脚本就能做到这一点? -
你不需要 JS。见这里:w3schools.com/howto/howto_css_equal_height.asp
标签: javascript html css