I use li to show a list of records.
Each li has a bottom-border:1px solid black;
but I don't want to show border at the end of li?
example:
.test li{
height:1%;
overflow:hidden;
padding:4px 0;
margin:-1px 0 0;
border-bottom: 1px solid black;
}
.test li.last { border-bottom: none; }
<ul class="test">
<li> Foo开发者_JAVA百科 1 </li>
<li> Foo 2 </li>
<li> Foo 3 </li>
</ul>
Foo 3 still showing bottom border.
.test li{
height:1%;
overflow:hidden;
padding:4px 0;
margin:-1px 0 0;
border-bottom: 1px solid black;
}
.test li:last-child { border-bottom: none; }
You can also set the top border instead and use the sibling selector to handle this without the need for an extra class:
.test li{
height:1%;
overflow:hidden;
padding:4px 0;
margin:-1px 0 0;
}
.test li + li { border-top: 1px solid black; }
Add a class to the li of last or if css3 is acceptable
ul.test>li:last-of-type { border-bottom:none }
you can use jquery too
$('ul li:last-child').css('border-bottom', 'none');
I prefer this way as it means less jumping around and crazy weird exceptions in your css.
Please add class to this :
li:last-child { border-bottom: none; }
Using: :last-of-type
with :not()
The:last-of-type selector allows you to target the last occurrence of an element within its container. It is defined in the CSS Selectors Level 3 spec as a “structural pseudo-class”, meaning it is used to style content based on its relationship with parent and sibling content.
.test li{
height:1%;
overflow:hidden;
padding:4px 0;
margin:-1px 0 0;
}
.test li:not(:last-of-type) {
border-bottom: 1px solid black;
}
<ul class="test">
<li> Foo 1 </li>
<li> Foo 2 </li>
<li> Foo 3 </li>
</ul>
Article link: enter link description here
精彩评论