1

我遇到了一个非常具体的问题:我使用的门户不允许我处理静态 html,而只能处理 CSS。

我需要隐藏一个没有用 id 声明的元素,所以我不能使用

#nameOfTheElement {display:none;}.

这是元素在 html 中的外观:

<div class="notToBeHidden">
<label class="label aClassToBeHidden" for="aClassToBeHidden">
<div class="forminput aClassToBeHidden">
</div>

有人可以帮助我了解如何从 CSS 中隐藏它,或者是否有可能?

不幸的是,我不能隐藏使用特定类的每个元素,因为即使在同一页面中也需要其他元素,我宁愿需要隐藏“标签类”和“div 类”。

谢谢大家!

4

4 回答 4

1

如果它总是在页面上的相同位置,您可以使用label.aClassToBeHidden:nth-child(7)标签(如果它是第七个这样的标签)和div.aClassToBeHidden:nth-child(7)div,给出:

label.aClassToBeHidden:nth-child(7),
div.aClassToBeHidden:nth-child(7) {
    display: none;
}
于 2013-04-09T15:20:52.723 回答
0

您的 HTML 看起来无效。但是如果你假设LABELDIV元素在另一个DIV元素中,你可以使用子选择器来隐藏它们:

.notToBeHidden > LABEL,
.notToBeHidden > DIV {display: none; }
于 2013-04-09T15:29:48.513 回答
0

如果容器notToBeHidden具有相同的孩子模式,你可以使用这样的东西来定位他们:

.notToBeHidden label { outline:1px dotted }
.notToBeHidden label+div { outline:1px dotted }

如果.notToBeHidden有很多标签元素或 div,那么使用nth-child()选择器将是您的解决方案。同样,取决于预期的模式/输出。

如果这些元素的位置/输出不一致,或者不能将它们的父元素用作依赖项,那么就不可能编写可靠的 CSS 来隐藏这些元素。

于 2013-04-09T15:33:15.743 回答
0

我找到了一个适合我的解决方案:

我的 html 页面中有两个相似的元素,我只需要从 CSS 中隐藏它们。

<div class="notToBeHidden">
  <label class="label aClassToBeHidden" for="aClassToBeHidden">
  <div class="forminput aClassToBeHidden">
</div>
<div class="notToBeHidden">
  <label class="label anotherClassToBeHidden" for="anotherClassToBeHidden">
  <div class="forminput anotherClassToBeHidden">
</div>

我通过编写 CSS 来隐藏元素:

.label.aClassToBeHidden{display: none}
.forminput.aClassToBeHidden{display: none}
.label.anotherClassToBeHidden{display: none}
.forminput.anotherClassToBeHidden{display: none}

因为我通过选择它们来隐藏在 id 元素之前:

#elementToBeHidden{display: none}

我不知道如何对类中的元素使用相同的概念。

再次感谢大家!

于 2013-04-10T08:17:45.017 回答