css - 伪元素 :first-child not being picked up

标签 css

鉴于以下代码片段,我希望包含“Award 1”的 div 具有红色背景色。有人可以向我解释为什么没有吗?第一项应该有一个顶部边框。

.item-wrap:first-child .item {
    border-top: 1px solid black;
}

.item {
    width: 100%;
    border-bottom: 1px solid black;
}
<div class="row awards">
  <div class="col-xs-12">
    <h2 class="no-border">Awards</h2> 
  </div>
  <div class="col-xs-12 item-wrap">
    <div class="item">Award 1</div>
  </div>
  <div class="col-xs-12 item-wrap">
    <div class="item">Award 2</div>
  </div>
</div>

最佳答案

The :first-child CSS pseudo-class represents any element that is the first child element of its parent.

:第一个 child ( https://developer.mozilla.org/en-US/docs/Web/CSS/%3Afirst-child )

在您的示例中,您试图选择一个类为 .item 的元素,该元素位于类为 .item-wrap 的父类中,而类 .item-wrap 本身就是第一个子类其父项(在本例中为 .awards)。由于 .item-wrap 不是 .awards 的第一个 child ,因此它不匹配。

鉴于您的标记,以下规则应该符合您的需要:

.awards :first-child + .item-wrap .item:first-child {
    border-top: 1px solid black;
}

.item {
    width: 100%;
    border-bottom: 1px solid black;
}
<div class="row awards">
  <div class="col-xs-12">
    <h2 class="no-border">Awards</h2> 
  </div>
  <div class="col-xs-12 item-wrap">
    <div class="item">Award 1</div>
  </div>
  <div class="col-xs-12 item-wrap">
    <div class="item">Award 2</div>
  </div>
</div>

这将选择一个类为 .item 的元素,该元素是其父元素 .item-wrap 的第一个子元素,紧接其后的第一个子元素属于具有类 .awards 的元素。

关于css - 伪元素 :first-child not being picked up,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33649817/

相关文章:

jquery - 如何在网页完全加载之前在网页上显示进度条?

css - @media print 中可以使用@page 规则吗?

html - 如何让聊天从屏幕底部出现?

css - 未应用子主题本地 CSS

JQuery scrollTop 动画不需要的调用

html - 如何使图像按比例缩放以适应 Web 浏览器窗口的大小调整?

html - CSS 悬停过渡在 Firefox 上悬停时不会改变图标的​​颜色

css - 奇怪的滚动行为从何而来?

css - 使用位置为 :absolute - is this acceptable? 的所有四个定位参数

html - Twitter Bootstrap 图标栏不显示