html - 如何使用 CSS 更改第一个元素的样式

标签 html css twitter-bootstrap

我使用 bootstrap 并有一个像下面这样的 Accordion

<accordion>
   <panel class='panel-body'>
       contents..
   </panel>
</accordion>
<accordion>
   <panel class='panel-body'>
       contents..
   </panel>
</accordion>
<accordion>
   <panel class='panel-body'>
       contents..
   </panel>
</accordion>

我只想使用 CSS 更改第一个面板主体的背景颜色。

我试过了

.panel-body:nth-of-type(1){
    background-color: red;
}

.panel-body:first-child{
    background-color: red;
}

但它们都将所有 Accordion 面板的背景颜色更改为红色。

有人可以帮我解决这个问题吗?谢谢!

最佳答案

问题是您要选择所有 .panel-body,它们是其父项的第一个子项。在这种情况下,所有的面板主体都是第一个 child - 它们是其对应的 accordion parent 的第一个 child 。

您可能希望在第一个 accordion 中选择 .panel-body:

accordion:first-child > .panel-body

查找第一个 accordion,然后选择其中的 .panel-body

> 符号表示“直接后代”,这意味着所选的 .panel-body 必须是第一个 accordion 的直接子代(即不超过 accordion 的一层。

关于html - 如何使用 CSS 更改第一个元素的样式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22975905/

相关文章:

html - Flexbox 以相同的方式定位所有内容。有什么办法让它表现不同吗?

javascript - <div> Bootstrap 3 的动态高度

html - 在两个 <button> 之间居中 <span>

html - Div 容器高度百分比不起作用

javascript - 仅将事件应用于父级

html - 选择某种类型的最后一个 child

css - SVG 圆半径与 CSS

html - 在较小的屏幕上在内容之后推送 div

html - 在没有绝对位置的情况下将 bootstrap col 移动到底部

javascript - jQuery 删除第二类