我正在使用表格中的数字列表,特别是高尔夫比分。我想用'E'替换'0'的出现。我在应用程序级别这样做,但我正在使用的javascript进行一些排序变得很困惑,在所有数字的中间找到一个字母。我把它看作是一个演示问题,希望有一个基于CSS的解决方案。
答案 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
选择器,content
,data attributes。
此外,如果您只是输出“E”表示“0”,并使用数据属性进行排序,则可以避免我建议的CSS hackery。