我需要一种方法,可以让单词中的每个字母轮流显示3种不同的颜色。我知道一些通过asp.NET实现的不太规范的方法,但我想知道是否存在更加清晰的CSS/JavaScript解决方案,而且更符合搜索引擎友好度。
设计师在每个页面中都包含像这样的文件。我不想为每个页面手动生成图片,因为这会使得非技术人员的网站编辑添加页面和更改页面名称变得困难。
以下是一些 JavaScript 代码。
var message = "The quick brown fox.";
var colors = new Array("#ff0000","#00ff00","#0000ff"); // red, green, blue
for (var i = 0; i < message.length; i++){
document.write("<span style=\"color:" + colors[(i % colors.length)] + ";\">" + message[i] + "</span>");
}
仅使用CSS是无法解决问题的,因为CSS选择器无法访问单个字母(除了:first-letter
)。
在服务器端,据我所知,你可以很容易地做到这一点,而不会打扰搜索引擎。
// This server-side code example is in JavaScript because that's
// what I know best.
var words = split(message, " ");
var c = 1;
for(var i = 0; i < words.length; i++) {
print("<span class=\"color" + c + "\">" + words[i] + "</span> ");
c = c + 1; if (c > 3) c = 1;
}
<img src="images/redblueyellow.cfm/programs.png" alt="programs"/>
而 redblueyellow.cfm 脚本将使用现有的 programs.png 或生成所需的多种颜色的新图像。
如果您愿意,我可以提供示例 CFML 或伪代码来完成此操作?