示例代码:
<p class="test">string</p>
我想更改最后一个字母的颜色,在本例中为“g”,但我需要 css 解决方案,我不需要 javascript 解决方案。
我一个字母一个字母地显示字符串,但无法使用静态解决方案。
大家都说做不到。我来这里是为了证明事实并非如此。
Yes, it can做完了。
好吧,这是一个可怕的黑客行为,但它是可以做到的。
我们需要使用两个 CSS 功能:
首先,CSS 提供了改变文本流方向的能力。这通常用于阿拉伯语或希伯来语等脚本,但实际上它适用于任何文本。如果我们将其用于英文文本,则字母的显示顺序与标记中的显示顺序相反。因此,为了让文本在反向元素上显示为单词“String”,我们必须有读取“gnirtS”的标记。
其次,CSS有::first-letter
伪元素选择器,选择文本中的第一个字母。 (其他答案已经证明这是可用的,但没有等效的::last-letter
选择器)
现在,如果我们结合::first-letter
使用反向文本,我们可以选择“gnirtS”的第一个字母,但看起来我们正在选择“String”的最后一个字母。
所以我们的 CSS 看起来像这样:
div {
unicode-bidi:bidi-override;
direction:rtl;
}
div::first-letter {
color: blue;
}
和 HTML:
<div>gnirtS</div>
是的,这确实有效——你可以在这里看到工作小提琴:http://jsfiddle.net/gFcA9/
但正如我所说,这有点hacky。谁愿意花时间把所有的事情都倒着写呢?这并不是一个真正实用的解决方案,但它确实回答了问题。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)