Я хочу, чтобы просто добавить border-bottom
к последнему .slab
Как использовать селектор last-child?
Я попробовал несколько вещей, и я не могу понять, что происходит.
Случай 1 - использовать .wrapper:last-child
Если бы я попробовать это на codepen.io или на StackOverflow фрагментах, я не получаю border-bottom
на последнем .slab
Если бы я попробовать это на JSFiddle или запустить код отдельно в Chrome, я получаю border-bottom
на последнем .slab
. Однако, если я раскомментирую <div class="something">New</div>
, то border-bottom
на последнем .slab
исчезнет как в JSFiddle, так и в Chrome.
.wrapper {
width: 10em;
margin: 1em;
}
.wrapper:last-child {
border-bottom: 1px solid #999;
}
.slab {
background-color: #eee;
border-top: 1px solid #999;
padding: 1em;
}
<div class="wrapper">
<div class="slab">Hello</div>
<div class="slab">Hello</div>
<div class="slab">Hello</div>
</div>
<!--<div class="something">New</div>-->
Случай 2 - использовать .slab:last-child
Оказывается, это работает везде - JSFiddle, Chrome, codepen.io и Stackoverflow. Но я думал, что выбор был действительно последним-ребенок из.slab
и не последние .slab
.wrapper {
width: 10em;
margin: 1em;
}
.slab {
background-color: #eee;
border-top: 1px solid #999;
padding: 1em;
}
.slab:last-child {
border-bottom: 1px solid #999;
}
<div class="wrapper">
<div class="slab">Hello</div>
<div class="slab">Hello</div>
<div class="slab">Hello</div>
</div>
Вопросы:
- Означает ли
.slab:last-child
последний ребенок от.slab
или последним вхождением.slab
? - В случай 1, почему
border-bottom
исчезает после введения несвязанного элемента.something
? - Каков наилучший способ применения
border-bottom
до последних.slab
?
Возможно, «имена» немного запутывают, но этот '.slab: last-child' не относится к детям .slab'. В нем говорится: 'get .slab, где .slab - последний дочерний элемент его родителя'. –
Связанный - http://stackoverflow.com/questions/2717480/css-selector-for-first-element-with-class?rq=1 –