如何让单词中的每个字符具有不同的颜色?

问题描述 投票:0回答:1

我想将单词中的每个字符设置为不同的颜色,就像 Google 徽标一样。

这是我尝试过的(循环),但它不起作用:

word.innerHTML.charAt(0).style.color = 'red'

此代码会生成错误:

Uncaught TypeError: Cannot set properties of undefined (setting 'color') at HTMLDocument.
javascript html css colors character
1个回答
1
投票

innerHTML
是一个字符串,您无法为字符串着色,但您可以将其拆分为字符并将每个字符包装到具有背景颜色的
<span>
中:

const text = 'Hello world 😊 !';
const colors = 'red orange yellow green skyblue blue darkviolet'.split(' ');

let colorIdx = 0;
$div.innerHTML = [...text].map(c => `<span style="background-color:${
  colors[colorIdx === colors.length && (colorIdx = 0), colorIdx++]
}">${c}</span>`).join('');
#\$div{
  font-size:30px;
  display:flex;
  gap:4px;
}
#\$div span{
  padding: 0 5px;
  border-radius:4px;
  min-width:16px;
  text-align:center;
}
<div id="$div"></div>

© www.soinside.com 2019 - 2024. All rights reserved.