使用css将数字格式化为字符

时间:2011-09-28 22:06:46

标签: css

我正在使用表格中的数字列表,特别是高尔夫比分。我想用'E'替换'0'的出现。我在应用程序级别这样做,但我正在使用的javascript进行一些排序变得很困惑,在所有数字的中间找到一个字母。我把它看作是一个演示问题,希望有一个基于CSS的解决方案。

2 个答案:

答案 0 :(得分:3)

不幸的是,没有。你必须使用JavaScript或服务器端。

答案 1 :(得分:1)

不是真的。有一个努力允许:contains()选择器,但已被删除。

这是获得所需效果的偷偷摸摸的方式,但我怀疑你真正需要做的是修复JavaScript执行排序的方式

所以你可以做的是在列表中添加一个属性,我称之为我的data-score并复制分数。

然后使用CSS属性匹配选择器,添加一些内容,“E”,并将“E”设为黑色,将原始内容(“O”)设置为白色。

<style type="text/css">
ul {
    list-style-type: none;
}
/* turn the "0" white */
li[data-score="0"] {
    color: #fff;
}
/* make an E, in black */
li[data-score="0"]:before {
    content: "E";
    color: #000;
}
</style>

<ul>
    <li data-score="100">100</li>
    <li data-score="0">0</li>
    <li data-score="10">10</li>
    <li data-score="5">5</li>
    <li data-score="100">100</li>
</ul>

将显示为:

100
E
10
5
100

真的存在“0”,但不可见。

详细了解::before选择器,contentdata attributes

此外,如果您只是输出“E”表示“0”,并使用数据属性进行排序,则可以避免我建议的CSS hackery。