【问题标题】:Selecting a nested element with :nth-child使用 :nth-child 选择嵌套元素
【发布时间】:2018-11-12 23:37:28
【问题描述】:

我在使用 :nth-child() 选择器定位嵌套元素时遇到问题。如何定位第二个和第三个.service

.service:nth-child(2) { /* styles */ }
.service:nth-child(3) { /* styles */ }
<div class="banner row">
    <div class="large-12 columns">
        <p>Bacon ipsum dolor sit amet nulla ham qui sint exercitation eiusmod commodo, chuck duis velit. Aute in reprehenderit, dolore aliqua non est magna in labore pig pork biltong. Eiusmod swine spare ribs reprehenderit culpa.</p>
        <p>Boudin aliqua adipisicing rump corned beef. Nulla corned beef sunt ball tip, qui bresaola enim jowl. Capicola short ribs minim salami nulla nostrud pastrami.</p>
    </div>
</div>

<div class="services row">
    <div class="large-4 columns">
        <div class="service">
            <h2>Service Name</h2>
            <div class="divide"></div>
            <p>Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod
            tempor incididunt ut labore et dolore magna aliqua.</p>
        </div>
    </div>
    <div class="large-4 columns">
        <div class="service">
            <h2>Service Name</h2>
            <div class="divide"></div>
            <p>Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod
            tempor incididunt ut labore et dolore magna aliqua.</p>
        </div>
    </div>
    <div class="large-4 columns">
        <div class="service">
            <h2>Service Name</h2>
            <div class="divide"></div>
            <p>Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod
            tempor incididunt ut labore et dolore magna aliqua.</p>
        </div>
    </div>
</div>

【问题讨论】:

  • 我使用了 .service:nth-child(2) {} 和 .service:nth-child(3) {}。

标签: html css css-selectors


【解决方案1】:

每个.service 都是其父.large-4.columns 的唯一子元素,所有三个都是同一个.services.row 元素的子元素。因此,您的 :nth-child() 应该在 .large-4.columns 元素上:

.services > .columns:nth-child(n+2) > .service

或者,如果您最多只有以下三列,则可以使用同级选择器而不是 :nth-child()

.services > .columns ~ .columns > .service

【讨论】:

    【解决方案2】:

    如果您想定位第一个元素以外的任何内容,请使用:not,如下所示:

    div {
      display: inline-block;
      background: black;
      color: white;
      height: 100px;
      width: 100px;
      float: left;
      text-align:center;
      line-height:100px;
    }
    div:not(:first-child) {
      border-left: 2px solid red;
    }
    <section>
      <div>One</div>
      <div>Two</div>
      <div>Three</div>
    </section>

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2013-05-09
      • 1970-01-01
      • 2012-11-21
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多