使用 CSS 与使用 cols 和 rows 调整 textarea 的大小

Posted

技术标签:

【中文标题】使用 CSS 与使用 cols 和 rows 调整 textarea 的大小【英文标题】:sizing a textarea with CSS vs with cols and rows 【发布时间】:2013-05-12 20:27:33 【问题描述】:

用 cols 和 rows 调整 textarea 的大小与用 height 和 width 调整 textarea 有什么区别?

<textarea id="TextArea1" cols="73" rows="12">with cols rows</textarea>
<textarea id="TextArea2" style="height:200px; width:600px";>with CSS</textarea>

jsFiddle

【问题讨论】:

Is it better to size a textarea with CSS width / height or html cols / rows attributes?的可能重复 【参考方案1】:

colsrows 是相对于字体大小的。 heightwidth 不是。

http://jsfiddle.net/rVUEE/1/

编辑:说它们是相对于“字体大小”来说有点过于简单化了。如果明确设置,它们也会考虑 line-heightletter-spacing 等内容。

【讨论】:

cols 与字体大小无关,rows 也不是,真的(rows 与行高有关)。 @JukkaK.Korpela cols 相对于那时是什么?我猜这真的是font-sizeletter-spacing 的组合?【参考方案2】:
    colsrows 属性是 HTML 规范所必需的。 W3C HTML5(2014 年批准)将它们设为可选,但使用了不切实际的默认值(20 和 2)。 即使禁用 CSS,属性也会生效。 另一方面,如果尺寸也在 CSS 中指定,则属性“丢失”。 rows 属性以行为单位指定高度(实际上,以行高为隐含单位),cols 属性以“平均”字符宽度指定宽度,一个非常模糊的概念,浏览器的解释非常不同。在 CSS 中,可以使用任何 CSS 单位,并且必须明确指定。

【讨论】:

colsrows 在 html5 规范中不再需要。 -1 rowscols 属性不是 textarea 元素通过 HTML5 验证所必需的,也不是 W3C 要求的。【参考方案3】:

CSS 并没有那么不同。结果将(几乎)相同。

我大部分时间都在使用最大宽度、最小宽度和相同的高度。在 Chrome 等新浏览器中,您可以调整文本区域的大小。

【讨论】:

文本区域大小调整可以在 CSS 和 HTML 中禁用。

以上是关于使用 CSS 与使用 cols 和 rows 调整 textarea 的大小的主要内容,如果未能解决你的问题,请参考以下文章

Row & col 类,它们不会根据屏幕大小进行调整

使用 flex-row 和 flex-col 与顺风未使用计算机和电话正确对齐

使用 cols/rows 或 style-width/height 来指定 textarea 的尺寸? [复制]

ionic 3 自动调整网格布局

调整引导列大小时的对齐问题

如何将“.row class”或“.col class”转换为写入css/less boostrap的独特类?