2

我有一个项目列表,每个项目都有一个类,并且该类自始至终重复。我只想显示每个类的第一个实例。仅使用 CSS 可能吗?

<ul>
   <li class="red">red</li>
   <li class="red">red</li>
   <li class="blue">blue</li>
   <li class="blue">blue</li>
   <li class="yellow">yellow</li>
   <li class="red">red</li>
   <li class="yellow">yellow</li>
</ul>
ul li {display:none}
ul li .red:first-child, ul li .blue:first-child, ul li .yellow:first-child { display:block}

所以在上面的代码中,应该只显示第 1、3 和 5 个列表项。

4

3 回答 3

5

使用此代码并根据需要添加任意数量的类。

.red,
.blue,
.yellow
{
    display: list-item;
}

.red ~ .red,
.blue ~ .blue,
.yellow ~ .yellow
{
    display: none;
}

检查这个使用你的 HTML 并且只显示每个类的第一个元素的JSFiddle 。

如果您有一组预定义的类名,这当然是微不足道的。如果您的类名未知和/或它们的数量难以管理,最好使用一些脚本(使用 jQuery 会有很多帮助)

于 2011-06-20T07:15:10.787 回答
0

在 CSS2 中,您可以使用:

LI .red + .red { display: none; }
LI .blue + .blue { display: none; }
LI .yellow + .yellow { display: none; }

CSS2 相邻选择器+在哪里

但我认为不可能同时对每种颜色使用单一规则。

于 2011-06-20T07:37:21.740 回答
-3

对于您想要隐藏的任何项目,只需为其添加一个 id。

<li class="red">red</li>
<li class="red" id="hide">red</li>

CSS:

#hide { display:none; }
于 2011-06-20T08:27:03.720 回答