在Textarea或文本输入中突出显示的多色文本

one*_*elf 22 html javascript css html5 css3

我想在textarea或文本输入中使用不同的颜色设置文本(一个或另一个很好,我不需要两者).想想简单的语法突出显示.所以,假设我定义了一些关键字.当用户输入textarea或文本输入时,我希望这些单词的颜色可以是不同的颜色

我知道这需要是CSS,Javascript和一些精灵粉尘的某种组合.我想知道我需要深入了解哪个方向,以了解如何做到这一点.

谢谢

Tim*_*own 49

不,你不能在textarea或文本输入中这样做.任何与CSS文本相关的属性都会影响textarea/input中的整个文本.您需要一个可编辑的元素或文档来实现语法突出显示.示例(适用于所有最近的浏览器;不支持的最后一个主要浏览器contenteditable是Firefox 2.0):

<code contenteditable="true">
  <span style="color: blue">var</span> foo = <span style="color: green">"bar"</span>;
</code>
Run Code Online (Sandbox Code Playgroud)

  • 这很有趣.我不知道这样的元素存在. (10认同)
  • 你的答案不是100%正确.可以使用javascript改变textarea属性,就像[codemMirror](http://codemirror.net/)所做的那样.查看他们的示例代码,看看他们是如何做到的 (2认同)
  • @user1951751:不,CodeMirror 中的主要编辑区域不是文本区域。您可以在这里阅读更多相关信息:http://marijnhaverbeke.nl/blog/browser-input-reading.html。诚然,我的答案没有提到 CodeMirror 方法(编辑器的常规 div 和 pre 元素、假插入符、用于用户输入的隐藏文本区域)。 (2认同)