使用:nth-​​child选择嵌套元素

时间:2015-06-16 16:45:35

标签: html css css-selectors

我在使用: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>
&#13;
&#13;
&#13;

2 个答案:

答案 0 :(得分:3)

每个.service是其父.large-4.columns的唯一子项,其中三个都是同一.services.row元素的子项。因此,:nth-child()应位于.large-4.columns元素:

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

如果您最多只有三个列,则可以使用兄弟选择器而不是:nth-child()

.services > .columns ~ .columns > .service

答案 1 :(得分:1)

如果您想要定位第一个元素以外的任何内容,请使用: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>