422 Stimmen

CSS :not(:last-child):after Selektor

Ich habe eine Liste von Elementen, die wie folgt gestaltet sind:

ul {
    list-style-type: none;
    text-align: center;
}

li {
    display: inline;
}

li:not(:last-child):after {
    content:' |';
}

<ul>
    <li>One</li>
    <li>Two</li>
    <li>Three</li>
    <li>Four</li>
    <li>Five</li>
</ul>

Ausgänge One | Two | Three | Four | Five | 代わりに One | Two | Three | Four | Five

Weiß jemand, wie man mit CSS alle Elemente bis auf das letzte auswählen kann?

Sie können die Definition der :not() Selektor aquí

475voto

imma Punkte 4822

Wenn es sich um ein Problem mit dem Nicht-Selektor handelt, können Sie alle Selektoren einstellen und den letzten überschreiben

li:after
{
  content: ' |';
}
li:last-child:after
{
  content: '';
}

oder wenn Sie "before" verwenden können, brauchen Sie kein "last-child

li+li:before
{
  content: '| ';
}

272voto

Vivek Punkte 4556

Alles scheint korrekt zu sein. Vielleicht möchten Sie den folgenden CSS-Selektor anstelle von dem, was Sie verwendet haben, verwenden.

ul > li:not(:last-child):after

37voto

Ashad Nasim Punkte 2320

Bei mir funktioniert es einwandfrei

&:not(:last-child){
            text-transform: uppercase;
        }

26voto

Liza Daly Punkte 2893

Ihr Beispiel funktioniert bei mir in Chrome 11 einwandfrei. Vielleicht unterstützt Ihr Browser einfach nicht die :not() Selektor?

Möglicherweise müssen Sie JavaScript oder ähnliches verwenden, um dies browserübergreifend zu erreichen. jQuery implementiert :not() in seiner Selektor-API.

23voto

Lorena Pita Punkte 1226

Ein Beispiel mit CSS

  ul li:not(:last-child){
        border-right: 1px solid rgba(153, 151, 151, 0.75);
    }

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X