我有一个文本区域,该区域具有22个列(列/字符)和16行。但是分配给文本区域的cols在台式机和设备上的浏览器之间是不同的。
以下是我从测试示例程序(https://codesandbox.io/s/condescending-snowflake-3ck5s)中捕获的一些测试结果。
Google chrome,New Edge浏览器和Firefox似乎每行只允许22个字符。
Safari和Google chrome始终允许每行输入23个字符。
Samsung J7上的Google chrome每行只能输入22个字符。但是三星S9上的Google Chrome允许每行输入21个字符。
但是以下html的输出与上述示例程序不同。在Firefox支持22的情况下,Google chrome和New Edge浏览器始终每行只允许21个字符。
<!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的解决方案来限制行中col的数量?
对所有设备使用固定的默认高度和宽度
textarea {
width:264px;
height:80px;
resize: none;
overflow-y: scroll;
overflow-x: hidden;
}