html - 根据内容的大小扩展文本区域
问题描述
textarea {
height: 1.5em;
width: 80%;
padding: 2px;
transition: all 0.2s ease;
}
textarea:focus {
height: 100%;
width: 100%;
}
<table>
<tr>
<td>
<textarea readonly>expand table when clicked to show all data contained herein
</textarea>
</td>
</tr>
</table>
有没有办法通过 CSS 和/或 jQuery 根据其内容调整 html 文本区域的大小?具体来说,我希望文本区域在被单击时展开,以便显示其全部内容。
该片段显示了我到目前为止所拥有的内容。单击时文本区域会扩展,但会扩展为任意预先确定的大小。我希望大小取决于当时文本区域中发生的情况(它是从数据库加载的)。
我已经看到了一些随着用户输入大小而扩大的例子。但这有点不同,因为 textarea 设置为readonly。
解决方案
我可以提供这个解决方案。使用scrollHeight
. 此外,您需要设置overflow: hidden
取消textarea
滚动条的规则。
window.onload = function() {
let textarea = document.querySelector('textarea');
textarea.onclick = function() {
this.style.height = (this.scrollHeight > this.clientHeight) ? (this.scrollHeight) + 'px' : "1.5em";
}
}
textarea {
width: 80%;
height: 1.5em;
padding: 2px;
transition: all 0.2s ease;
overflow: hidden;
}
<table>
<tr>
<td>
<textarea readonly>expand table when clicked to show all data contained herein
</textarea>
</td>
</tr>
</table>
推荐阅读
- regex - 使用记事本++中的查找/替换和正则表达式复制id="uniqueid" as name="uniqueid"
- python - Keras 多输出,自定义损失函数
- sqlite - 续集内存中的sqlite测试隔离数据库?
- c# - 如何为 Spring.Net 属性注入配置 xml 文件
- flutter - flutter: 如何在大量Container中修改一个Container的颜色
- c# - 显示默认 Gmap winfrom
- c# - C# 中 Python 的 partition()?
- r - 您将如何在 R 中使用 tidyverse 对列进行基底处理?
- c# - 如何在 C# 中访问 Forms Pro Page html 文本?
- python - 使用 python3 将 .key 格式的私钥转换为 .pem 格式