【问题标题】:first-child not triggered第一个孩子没有被触发
【发布时间】:2012-08-24 04:33:18
【问题描述】:

我有一些在 HTML 中看起来像这样的帖子:

<article class="post">
  <h3>Lorem ipsum adipisicing do sed laboris</h3>
  <p>
    Lorem ipsum cillum reprehenderit consequat veniam dolore non minim in dolore commodo labore ex veniam sed aliqua amet incididunt ea ut occaecat cupidatat ex Duis Excepteur exercitation enim tempor deserunt eiusmod deserunt Ut culpa magna culpa.
  </p>
  <p>
    Lorem ipsum quis laboris ex cillum ex do ullamco amet sint commodo reprehenderit id tempor reprehenderit do dolore esse ut qui esse laboris reprehenderit voluptate elit consequat incididunt ut anim nulla cupidatat aliquip est ut elit eiusmod Duis nulla ad ut. 
  </p>
  <p class="read-more">
    <a href="#">Read more »</a>
  </p>
</article>

然后我有一些设置顶部和底部边框的 CSS。问题是我不希望 first 帖子有上边框,而 last 帖子有下边框。

我的 CSS(实际上是 SASS):

  .post {
    border-bottom: 1px solid darken($lightestBlue, 5%);
    border-top: 1px solid darken(#FFFFFF, 5%);

    &:first-child {
      border-top: none;
    }
    &:last-child {
      border-bottom: none;
    }
  }

这里的问题是 last 帖子的底部边框被删除,但 first 没有被触及。第一个孩子没有被触发!

这是为什么呢?第一个孩子和最后一个孩子的工作方式不一样吗?

【问题讨论】:

    标签: html css sass


    【解决方案1】:

    您可能在第一个 &lt;article&gt; 之前还有其他元素。
    如果:first-child 有一个不匹配的较早同级,则该元素将不适用。

    【讨论】:

    • 是的,那里有一个 h2 标签。我认为它只会匹配第一个 .post 并且不关心任何其他元素......奇怪:) 无论如何谢谢!
    • 这就是为什么它被称为 first-child 而不是 first。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2017-03-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-02-08
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多