显示第一类类型

发布于 2024-11-16 03:12:01 字数 673 浏览 4 评论 0原文

我有一个项目列表,每个项目都有一个类,并且该类在整个过程中重复。我只想显示每个类的第一个实例。 只用 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 和应显示第五个列表项。

I have a list of items, each with a class and the class are repeated throughout. I want to only show the first instance of each class.
Is that possible with just 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}

So in the above code, only the 1st, 3rd & 5th list items should show.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

听闻余生 2024-11-23 03:12:01

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

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

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

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

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

Use this code and add as many classes as you need.

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

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

Check this JSFiddle that uses your HTML and only displays the first elements of each class.

This is of course trivial if you have a predefined set of class names. In case your class names are unknown and/or there's an unmanageable amount of them they it would be best to resort to some scripting (using jQuery would help lots)

人│生佛魔见 2024-11-23 03:12:01

在 CSS2 中,您可以使用:

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

其中 +CSS2 相邻选择器

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

In CSS2 you can use:

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

where + is the CSS2 adjacent selector

But I think it is not possible using a single rule for every color at once.

悟红尘 2024-11-23 03:12:01

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

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

CSS:

#hide { display:none; }

For any items you want to hide, simply add a id to them.

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

CSS:

#hide { display:none; }
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文