html - 更改备用元素 css 的背景颜色

标签 html css css-selectors css-float

我想更改替代元素的颜色,但我的代码不起作用。我的代码改变了整个容器元素的颜色。

谁能告诉我代码哪里出错了?

.pvt-msg-panel {
  height: 92vh;
  float: left;
  margin-top: -20px;
}
#pvt-messages-box {
  height: 50vh;
  width: 650px;
  margin-top: 10px;
  margin-left: 10px;
  overflow-y: scroll;
}
.pvt-messages-box-item {
  padding: 10px;
  padding-left: 20px;
  position: relative;
  display: inline-block;
  width: 100%;
  color: black;
  padding-left: 20px;
  font-size: 12px;
  cursor: pointer;
}
.pvt-messages-box-item:nth-child(odd) {
  background-color: green;
}
.pvt-messages-box-item:nth-child(even) {
  background-color: white;
}
<div class="pvt-msg-panel">
  <section id="pvt-messages-box">
    <span class="pvt-messages-box-item"><span><img src="images/avatar2.png"></span>message 1</span>
    <br>
    <span class="pvt-messages-box-item"><span><img src="images/avatar2.png"></span>message 2</span>
    <br>
    <span class="pvt-messages-box-item"><span><img src="images/avatar2.png"></span>message 3</span>
    <br>
  </section>
</div>

最佳答案

当使用first-child 选择器时,br 标签会尝试选择even 选择器。尝试使用 nth-of-type 选择器就可以了:

.pvt-msg-panel{
  height: 92vh;
  float: left;
  margin-top: -20px;
}
#pvt-messages-box{
  height: 50vh;
  width: 650px;
  margin-top: 10px;
  margin-left: 10px;
  overflow-y: scroll;
}
.pvt-messages-box-item{
  padding:10px;
  padding-left: 20px;
  position: relative;
  display: inline-block;
  width: 100%;
  color: black;
  padding-left: 20px;
  font-size: 12px;
  cursor: pointer;
}

.pvt-messages-box-item:nth-of-type(odd){
  background-color: green;
}
.pvt-messages-box-item:nth-of-type(even){
  background-color: white;
}
<div class="pvt-msg-panel">
    <section id="pvt-messages-box">
        <span class="pvt-messages-box-item"><span><img src="images/avatar2.png"></span>message 1</span><br>
        <span class="pvt-messages-box-item"><span><img src="images/avatar2.png"></span>message 2</span><br>
        <span class="pvt-messages-box-item"><span><img src="images/avatar2.png"></span>message 3</span><br>
    </section>
</div>

关于html - 更改备用元素 css 的背景颜色,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39052549/

相关文章:

javascript - 使侧导航高度匹配 Angular ui-view div 高度

css - 如何删除 CSS 中元素最后一个字母的字母间距?

html - :not selector in CSS

html - 在 ruby​​ 的一个 block 中执行两个each do语句

html - 在 iFrame 中包装菜单的陷阱?

html - CSS 按钮链接重叠

css - 使用 rails 和 bootstrap 时不显示占位符文本

javascript - 显示更多代码在 HTML 中无法正常工作

jquery - 当我单击 div 区域时,div 应该消失,当我单击页面中的任何位置时 div 应该出现

html - 如何通过css选择所有输入元素?