【发布时间】:2011-10-10 13:57:32
【问题描述】:
有没有一种简单的方法让 HTML <textarea> 交替其行颜色
改进编辑?
我不介意解决方案是纯 CSS 还是需要 JavaScript。
【问题讨论】:
-
不是文本区域,但可以查看 HTML5 的 ContentEditable 属性:html5demos.com/contenteditable
标签: javascript html css textarea
有没有一种简单的方法让 HTML <textarea> 交替其行颜色
改进编辑?
我不介意解决方案是纯 CSS 还是需要 JavaScript。
【问题讨论】:
标签: javascript html css textarea
textarea {
background-image: linear-gradient(#F1F1F1 50%, #F9F9F9 50%);
background-size: 100% 4rem;
border: 1px solid #CCC;
width: 100%;
height: 400px;
line-height: 2rem;
margin: 0 auto;
padding: 4px 8px;
}
在 codepen 上找到了这个。为我工作。
【讨论】:
如果我理解正确,您希望在 textarea 内交替显示颜色(如每一行)?
我建议最简单的方法是在您的文本区域中使用背景图像,并让备用颜色的行与字体大小/行高的高度相同,以创建交替行的错觉,然后重复背景图片。
其他解决方案
但是,似乎使用该方法,背景不会随着每一行滚动。
我能想到的最佳技术是使用由 James Padolsey 开发的名为“autoResize”的 jQuery 插件。这样做会移除滚动条,当您的文本接近 textarea 的底部时,textarea 的高度会相应增加。
现在,这可能会导致问题,因为您可能有非常长的文本区域,具体取决于用户写入的文本量,但我已经为此创建了一个修复程序。
我们可以做的是将textarea 包裹在div 中,并将overflow-y(垂直)设置为scroll,将overflow-x(水平)设置为hidden。现在,它的作用是在 textarea 上给我们一个“假”滚动条,创造出它可以滚动的错觉,因此我们的背景现在看起来好像它也随着文本上下滚动。
您必须相应地调整宽度/高度/边距/边框/填充等,并可能检查跨浏览器兼容性,但这应该有助于您走上正确的轨道并让您继续前进。
这是我使用上述方法创建的示例的链接:
【讨论】: