Javascript 当溢出:隐藏和调整大小:无时,为什么chrome textareas将自己的大小调整为两列以上以适应可能的滚动条?

Javascript 当溢出:隐藏和调整大小:无时,为什么chrome textareas将自己的大小调整为两列以上以适应可能的滚动条?,javascript,html,css,google-chrome,Javascript,Html,Css,Google Chrome,我想让chrome根据我指定的列数精确调整我的文本区域的大小。不是额外的两个 Firefox和IE非常友好,当使用样式“overflow:hidden”和“resize:none”关闭滚动条时,我的文本区域会像我指定的那样多“col”。为什么chrome不能做同样的事情?chrome是否遵循css样式来修复此问题 如果无法修复,我如何在javascript中测试textareas在标记中将其“cols”属性设置为“N”时是否呈现N+2列宽 试试这个: <textarea style="ov

我想让chrome根据我指定的列数精确调整我的文本区域的大小。不是额外的两个

Firefox和IE非常友好,当使用样式“overflow:hidden”和“resize:none”关闭滚动条时,我的文本区域会像我指定的那样多“col”。为什么chrome不能做同样的事情?chrome是否遵循css样式来修复此问题

如果无法修复,我如何在javascript中测试textareas在标记中将其“cols”属性设置为“N”时是否呈现N+2列宽

试试这个:

<textarea style="overflow:hidden; resize:none;" cols=10 rows=1>1234567890</textarea>
1234567890

我设法用
宽度:10ch来修复它显式。看

我提出的完整CSS是:

textarea{
    width:auto; /* Default */
    width:10ch; /* 10 characters for webkit */
    width:auto\9; /* Fix for IE */
}

因为我正在用javascript设置列大小,所以我现在通过以下操作修复了它:

var textareanode = getTextAreaNode();
var cols = calculateCols();
var is_chrome = navigator.userAgent.toLowerCase().indexOf('chrome') > -1;
if (is_chrome)
   cols = cols - 2;
setCols(cols, textareanode);

我认为分享你的CSS和HTML,可能还有一个JSFIDLE是个好主意。好计划,我很快就会回来。很有帮助,但我不能使用它。我只是想做一个文本区域,它只需要足够大。这可不容易!所以我在运行时调整它的大小。我可以缩小两列的大小,但我希望css解决方案能够修复chrome,但不会破坏任何其他浏览器。在这种情况下,如果我修理铬合金,就会损坏。所以现在我必须检测JS中的chrome并减去2,我想这对我在IE10上的工作是有效的。它在哪个版本上断开?在11号断开。我打开了你的小提琴,它没有显示所有的字符。它实际上遵循宽度:Nch,但不同的数字在chrome和ie 11之间产生不同的结果。Firefox是桃色的。在Chrome上,将小提琴中的行设置为2,然后观察当您将光标放在9之前,将空格键9和0放在下一行时会发生什么。继续按空格键。。9和0锁定到位。我讨厌那种行为。