这个问题在这里已经有答案了:
有没有办法改变占位符的一个单词的颜色
(3个答案)
(3个答案)
去年关闭了
我正在使用一个<;输入>字段,我想将部分字段设置为用户以不同颜色键入的样式。例如,假设<;输入>的样式声明为颜色:红色我想将它的部分更改为颜色:蓝色。这有可能吗
如果没有(正如我所怀疑的那样),关于如何在保持语义标记的同时模拟这种效果,有什么创造性的想法吗
您的猜测是正确的:样式将只应用于整个输入
由于样式只能应用于一个元素的整体,因此解决方案要求每个所需颜色至少有一个元素
考虑输入字段相对于用户正在进行更改的点的划分。输入有三个部分:
- 在应用更改的点之前
- 在应用更改的点之后
- 在应用更改时
使用单个输入元素无法实现这一点。当应用更改的点发生变化时,由三个元素包装的“输入”部分也会发生变化。解决方案需要JavaScript
您应该首先包括一个常规的输入元素,并放弃任何所需的着色。使用JavaScript将输入替换为合适的容器元素。可以将其设置为模仿输入元素
当发生变化时,使用JavaScript识别上述三个部分。将其包裹在合适的构件中(跨度最好),并根据需要涂上颜色
考虑生成的替换标记的以下起点:
<;div class=“输入”>;
<;span class=“之前未编辑”>;富</span>;
<;span class=“已编辑”>;起泡</span>;
<;span class=“之后未编辑”>;酒吧</span>;
</部门>;
使用click、keydown和keyup事件找出输入的三个部分,并根据需要应用伪造输入的三个部分