在CSS和/或Javascript中给定文本中俄语字母表的每个字符都有不同的颜色
Different color to every character of the russian alphabet in a given text in CSS and/or Javascript
我正在尝试通过按单个字符为文本着色来测试"诱导联觉"。俄语字母表中的每个字符都应映射到一种颜色,例如 А 是红色,Б 是蓝色等等,因此总共有 33 种颜色。此过程应该是自动的。
我的想法是将整个文本放在一个div
元素中并在 Javascript 中获取它,然后将每个字符分开并用正确的字母在其周围放置一个<span class="letter">
,因此对于单词"два",最终文本将是这样的:
<div class=text>
<span class="д">д</span><span class="в">в</span><span class="а">а</a>
</div>
问题是,有没有更好和/或更短的方法?我想足够大的文本甚至可能会使浏览器崩溃。
虽然您可以轻松地在 HTML 中用跨度包装每个字母,
但如果有很多字母,下面的解决方案会很有帮助,或者如果您想节省时间,请在控制台中运行此函数以立即将跨度包装到每个带有类名的字母。
function addClassToLetters(element) {
// runs if the passed element has no children elements in it.
if (!element.children.length) {
return element.innerHTML.replace(/(.)/g, function (x) {
return "<span class='" + x + "'>" + x + "</span>";
});
}
else{
// do something if the element has child elements in it
// or return the original html
}
}
这里有一个jQuery方法。
第一步:创建一个函数来拆分文本以跨越,就像您手动操作一样,但现在是动态的。
第二步:为跨度的类提供相应的字母。
第三步:为所有字母编写css以赋予它们各自的颜色。
这是代码:
.HTML:
<div class="text">Test Message</div>
j查询 :
$.fn.texter = function() {
var letters = $(this).html().split(""),
text = "";
for (var i in letters) {
text += "<span class='"+letters[i]+"'>"+letters[i]+"</span>";
}
$(this).html(text);
};
$(document).ready(function() {
$(".text").texter();
});
.CSS:
.a {color: red;}
.b {color: green;}
.c {color: blue;}
.d {color: yellow;}
.e {color: magenta;}
这里有一个小提琴:http://jsfiddle.net/3d4j5cdq/
相关文章:
- 使用JS如何动态更改显示的html文件中的文本背景颜色
- 在JavaScript中输出转义字符
- 高亮显示时编辑文本大小和颜色
- Javascript用颜色突出显示所有排除的字符
- jQuery文本html操作,以查找大量文本中出现的字符,然后更改其颜色
- 如何使用高图表创建列字符,其中每列都有不同的颜色
- 在CSS和/或Javascript中给定文本中俄语字母表的每个字符都有不同的颜色
- 获取索引处字符的 ANSI 颜色
- 从输入字符串中获取包含字符及其 ANSI 颜色的数组
- 是否可以替换输入字段中每个字符的颜色
- 用颜色显示字符
- jquery函数根据特殊字符更改文本颜色
- 使用angular和jquery将文本颜色更改为特定字符
- ckeditor无法使用'#'颜色上的字符
- 如何更改html页面中每次出现特定字符时的颜色?(例如'*')
- 将十六进制颜色传递到函数时,firefox中存在非法字符
- 十六进制颜色码的按位补码总是返回6个字符吗?
- 改变文本区域中单个字符的背景颜色
- 当值超过字符的最大值时,如何更改文本框的颜色
- 将字符的颜色从一个设置为另一个