我的标记看起来像吼叫:
<div>
<div class="container">
<div class="title-container">
<h4 class="title blue">blue</h4>
</div>
<p>Something blue no 1</p>
</div>
<div class="container">
<div class="title-container">
<h4 class="title blue">blue</h4>
</div>
<p>Something blue no 2</p>
</div>
<div class="container">
<div class="title-container">
<h4 class="title green">green</h4>
</div>
<p>Something green no 1</p>
</div>
<div class="container">
<div class="title-container">
<h4 class="title green">green</h4>
</div>
<p>Something green no 2</p>
</div>
</div>
我尝试使用first-of-type
选择器隐藏第一个h4标记或每个组合选择器.title.blue
和.title.green
。
我认为这不起作用,因为元素不是兄弟姐妹。有没有办法继续使用first-of-type
?
There's a pen as an example here
h4.title.blue:first-of-type {
display: none;
}
&#13;
<div>
<div class="container">
<div class="title-container">
<h4 class="title blue">blue</h4>
</div>
<p>Something blue no 1</p>
</div>
<div class="container">
<div class="title-container">
<h4 class="title blue">blue</h4>
</div>
<p>Something blue no 2</p>
</div>
<div class="container">
<div class="title-container">
<h4 class="title green">green</h4>
</div>
<p>Something green no 1</p>
</div>
<div class="container">
<div class="title-container">
<h4 class="title green">green</h4>
</div>
<p>Something green no 2</p>
</div>
</div>
&#13;
答案 0 :(得分:1)
要隐藏第一个蓝色和第一个绿色,您应该同时修改html
和CSS
。看一下下面的例子:
h4.title:first-child {
display: none;
}
&#13;
<div>
<div class="container">
<div class="title-container">
<h4 class="title blue">blue</h4>
</div>
<p>Something blue no 1</p>
</div>
<div class="container">
<div class="title-container">
<h4 class="title blue">blue</h4>
</div>
<p>Something blue no 2</p>
</div>
<div class="container">
<div class="title-container">
<h4 class="title green">green</h4>
</div>
<p>Something green no 1</p>
</div>
<div class="container">
<div class="title-container">
<h4 class="title green">green</h4>
</div>
<p>Something green no 2</p>
</div>
</div>
&#13;
在第一个示例中,您可以看到first-child
选择器中的每个<h4>
标记都消失了。发生这种情况是因为它们不在同一水平上。请参阅下面的书面示例:
- container
- title container
- h4
- </title container
- </container
- container
- title container
- h4
- </title container
- </container>
- container
- title container
- h4
- </title container
- </container>
- container
- title container
- h4
- </title container
- </container>
正如您所看到的,每个<h4>
标记位于新容器中。所以,如果我使用CSS
,如下所示:
.container .title-container h4.title:first-child {
display: none;
}
它不会显示每个容器的第一个<h4>
标记。由于每个容器只有一个容器,所以它们都会消失。
作为解决方案,请尝试以下方法:
.container .title-container h4.title:first-child {
display: none;
}
&#13;
<div>
<div class="container">
<div class="title-container">
<h4 class="title blue">blue 1</h4>
<p>Something blue no 1</p>
<h4 class="title blue">blue 2</h4>
<p>Something blue no 2</p>
</div>
<div class="container">
<div class="title-container">
<h4 class="title green">green 1</h4>
<p>Something green no 1</p>
<h4 class="title green">green 2</h4>
<p>Something green no 2</p>
</div>
</div>
&#13;
希望这有帮助!
答案 1 :(得分:0)
h4.title:first-of-type {
display: none;
}
<div>
<div class="container">
<div class="title-container">
<h4 class="title blue">blue</h4>
</div>
<p>Something blue no 1</p>
</div>
<div class="container">
<div class="title-container">
<h4 class="title blue">blue</h4>
</div>
<p>Something blue no 2</p>
</div>
<div class="container">
<div class="title-container">
<h4 class="title green">green</h4>
</div>
<p>Something green no 1</p>
</div>
<div class="container">
<div class="title-container">
<h4 class="title green">green</h4>
</div>
<p>Something green no 2</p>
</div>
</div>
你应该更新css
h4.title:first-of-type {
display: none;
}
答案 2 :(得分:0)
我尝试使用第一个类型的选择器来隐藏第一个h4标记 或者每个组合选择器.title.blue和.title.green。
你几乎就在那里。
您需要在DOM上方的元素上使用:nth-of-type
。
工作示例:
div > div:nth-of-type(odd) > div h4 {
display: none;
}
&#13;
<div>
<div class="container">
<div class="title-container">
<h4 class="title blue">blue</h4>
</div>
<p>Something blue no 1</p>
</div>
<div class="container">
<div class="title-container">
<h4 class="title blue">blue</h4>
</div>
<p>Something blue no 2</p>
</div>
<div class="container">
<div class="title-container">
<h4 class="title green">green</h4>
</div>
<p>Something green no 1</p>
</div>
<div class="container">
<div class="title-container">
<h4 class="title green">green</h4>
</div>
<p>Something green no 2</p>
</div>
</div>
&#13;
答案 3 :(得分:0)
我最终找到了另一种方法。我无法更改任何标记,但我可以移动CSS类。
我使用.container > .class-to-hide ~ .class-to-hide
作为我的选择器。这选择了除.class-to-hide
的第一个元素之外的所有元素。