【发布时间】:2020-06-05 15:59:56
【问题描述】:
我有一个定义了 22 列(列/字符)和 16 行的文本区域。 但是分配给文本区域的 cols 在桌面和设备上因浏览器而异。
以下是我通过测试示例程序 (https://codesandbox.io/s/condescending-snowflake-3ck5s) 获得的一些测试结果。
平台:Windows
Google chrome、New Edge 浏览器和 Firefox 似乎每行只允许 22 个字符。
平台:Mac
Safari 和 Google chrome 始终允许每行输入 23 个字符。
平台:安卓
三星 J7 上的 Google chrome 允许每行仅输入 22 个字符。 但三星 S9 上的谷歌浏览器允许每行输入 21 个字符。
但以下 html 的输出与上面的示例程序不同。 Google chrome 和 New Edge 浏览器始终只允许每行 21 个字符,而 Firefox 支持 22 个字符。
<!DOCTYPE html>
<html>
<head>
<title>Textarea Tests</title>
<style>
textarea {
resize: none;
overflow-y: scroll;
overflow-x: hidden;
}
</style>
</head>
<body>
Textarea 1:
<textarea cols="22" rows="5">
</textarea>
</body>
</html>
所以我的结论是,不能保证我们得到我们在文本区域中定义的精确列。 在不同的浏览器和设备上,它总是像 cols = n - 1 或 n + 1。
是否有基于 javascript 的解决方案来限制一行中的列数?
【问题讨论】:
标签: javascript html web cross-browser textarea