css - 只有一流的纯 CSS?

标签 css css-selectors

只有当列表中没有其他 .meta 元素时,我才需要隐藏 .meta 元素。
基本上,我需要与 :only-of-type 相同的行为,但对于类。

所以,如果我有:

<table>
    <tr class="meta"><td>lorem</td></tr>
    <tr class="row"><td>row</td></tr>
</table>

.meta 将被隐藏

如果我有:

<table>
    <tr class="meta"><td>lorem</td></tr>
    <tr class="row"><td>row</td></tr>
    <tr class="meta"><td>lorem</td></tr>
</table>

.meta 将显示。

CSS 应如下所示:

.meta:only-of-class { display: none; }

纯 CSS 有可能吗?

编辑:

我什至尝试过使用此标记(不符合 W3C 但谁在乎):

<table>
    <tr><th class="meta"><lorem</th><tr>
    <tr class="row"><td>row</td></tr>
</table>

使用这个 CSS:

th:only-of-type { display: none; }

但它不起作用(在这里我真的不知道为什么它不起作用)

最佳答案

一种可能的解决方法是在那些包含多个 .meta 元素的列表中使用一个虚拟项:

<ul>
    <li class="meta">lorem</li>
    <li class="row">row</li>
</ul>

<ul>
    <li class="meta">dummy</li>
    <li class="meta">lorem</li>
    <li class="row">row</li>
    <li class="meta">lorem</li>
</ul>

然后您将为每个元素赋予display: none 属性,并且仅当您有多个.meta 兄弟时才覆盖它:

ul > .meta {
    display: none;
}

ul > .meta ~ .meta {
    display: list-item;
}

关于css - 只有一流的纯 CSS?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23077534/

相关文章:

css - Foundation 3 - 下拉菜单下推页面,如何防止这种情况?

html - 带有文章的 CSS 伪类

css - 垂直边距不会在 Chrome 中折叠

css - 仅将样式应用于 td 标签的第一级

jquery - 使用 jQueryMobile 滑动时可滚动的 div

javascript - 使用 If Else 语句和 document.getElementByID 进行表单验证

css - 我应该使用 CSS :disabled pseudo-class or [disabled] attribute selector or is it a matter of opinion?

css - 是否可以将一个通用 CSS 选择器的属性嵌入到另一个更具体的类中?

css - 为什么这个 CSS 选择器不比另一个更具体?

jquery - jQuery 选择器中 AND 和 OR 的组合