我可以只设计一个角色的一部分吗?
CSS属性无法分配给部分字符.但是如果你只想设置角色的某个部分,那么就没有标准化的方法可以做到这一点.
是否可以设计一个中间红色然后是黑色的"X"?

<div class="content">
X
</div>
Run Code Online (Sandbox Code Playgroud)
.content {
position: relative;
font-size: 50px;
color: black;
}
.content:after {
content: 'X';
color: red;
width: 50%;
position: absolute;
overflow: hidden;
}
Run Code Online (Sandbox Code Playgroud)
我的目的是为Font Awesome icon-star符号设计样式.如果我有动态宽度的叠加层,是否应该可以创建精确的分数可视化?
在玩一个演示小提琴时,我自己想出来并希望分享我的解决方案.这很简单.
要对单个字符进行部分设置,您需要为内容添加额外标记.基本上,您需要复制它:
<?div class="content">
<span class="overlay">X</span>
X
</div>
Run Code Online (Sandbox Code Playgroud)
使用伪元素如:after或:before会更好,但我没有找到办法做到这一点.
叠加层需要绝对定位到内容元素:
?.content {
display: inline-block;
position: relative;
color: black;
}
?.overlay {
width: 50%;
position: absolute;
color: red;
overflow: hidden;
}?
Run Code Online (Sandbox Code Playgroud)
不要忘记overflow: hidden;为了切断"X"的剩余部分.
您可以使用任何宽度而不是使用50%此方法非常灵活.您甚至可以使用自定义高度,其他CSS属性或多个属性的组合.
你的解决方案很棒.我有一个:after在Chrome 19 中使用的版本(而不是复制HTML中的内容).
基本上:
position:relative上.content:after绝对的位置:after为overflow:hidden:after以隐藏它的位.我不确定它是否能在跨浏览器上运行良好 - em价值可能会有所不同.(显然它肯定不适用于IE 7或更低版本.)
此外,您最终必须复制CSS文件中的内容而不是HTML,这可能不是最佳的,具体取决于具体情况.