user622378
user622378

Reputation: 2346

Remove last border-bottom?

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 1 </li>
  <li> Foo 2 </li>
  <li> Foo 3 </li>
</ul>

Foo 3 still showing bottom border.

Upvotes: 5

Views: 32671

Answers (6)

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

Upvotes: 0

Monyane Ramollo
Monyane Ramollo

Reputation: 25

Please add class to this :

li:last-child { border-bottom: none; }

Upvotes: 1

jonezy
jonezy

Reputation: 1923

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.

Upvotes: 3

Robin Maben
Robin Maben

Reputation: 23114

.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;  }

Upvotes: 23

jswolf19
jswolf19

Reputation: 2303

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;  }

Upvotes: 15

Shaun Hare
Shaun Hare

Reputation: 3871

Add a class to the li of last or if css3 is acceptable

ul.test>li:last-of-type { border-bottom:none }

Upvotes: 3

Related Questions