kzen.dev
  • Otázky
  • Značky
  • Používatelia
Oznámenia
Odmeny
Registrácia
Po registrácii budete informovaní o odpovediach a komentároch na vaše otázky.
Prihlásiť sa
Ak už máte konto, prihláste sa a skontrolujte nové oznámenia.
Za pridané otázky, odpovede a komentáre budú udelené odmeny.
Viac na
Zdroj
Upraviť
Matt Clarkson
Matt Clarkson
Question

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

Mám zoznam prvkov, ktoré sú štylizované takto:

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>

Výstupy One | Two | Three | Four | Five | namiesto One | Two | Three | Four | Five

Vie niekto, ako CSS vybrať všetky prvky okrem posledného?

Definíciu selektora :not() si môžete pozrieť tu

342 2011-03-27T14:31:53+00:00 3
 diralik
diralik
Edited question 20 január 2018 в 10:07
Programovanie
css
pseudo-element
css-selectors
This question has 1 odpoveď in English, to read them log in to your account.
Solution / Answer
 imma
imma
16 marec 2012 в 12:03
2012-03-16T12:03:48+00:00
Viac na
Zdroj
Upraviť
#12169101

Ak ide o problém s výberom not, môžete nastaviť všetky a prepísať posledný z nich

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

alebo ak môžete použiť pred, nepotrebujete last-child

li+li:before
{
  content: '| ';
}
409
0
Artificial intelligence to parse product page
productapi.dev
Liza Daly
Liza Daly
27 marec 2011 в 2:47
2011-03-27T14:47:12+00:00
Viac na
Zdroj
Upraviť
#12169099

Váš príklad, ako je napísaný, mi v prehliadači Chrome 11 funguje perfektne. Možno váš prehliadač len nepodporuje selektor :not()?

Možno budete musieť použiť JavaScript alebo niečo podobné, aby ste to dosiahli naprieč prehliadačmi. jQuery implementuje :not() vo svojom API selektora.

25
0
Artificial intelligence to parse product page
productapi.dev
Martin Kunc
Martin Kunc
27 marec 2011 в 3:28
2011-03-27T15:28:02+00:00
Viac na
Zdroj
Upraviť
#12169100

Vaša ukážka mi v IE nefunguje, musíte v dokumente zadať Doctype header, aby sa vaša stránka v IE vykreslila štandardným spôsobom a použila vlastnosť CSS content:

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<head>
<link href="style.css" rel="stylesheet" type="text/css">
</head>
<html>

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

</html>

Druhý spôsob je použiť selektory CSS 3

li:not(:last-of-type):after
{
    content:           " |";
}

Ale stále musíte špecifikovať Doctype

A tretím spôsobom je použitie JQuery s nejakým skriptom, ako je nasledujúci:

<script type="text/javascript" src="jquery-1.4.1.js"></script>
<link href="style2.css" rel="stylesheet" type="text/css">
</head>
<html>

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

<script type="text/javascript">
  $(document).ready(function () {
      $("li:not(:last)").append(" | ");
    });
</script>

Výhodou tretieho spôsobu je, že nemusíte zadávať doctype a jQuery sa postará o kompatibilitu.

 BoltClock
BoltClock
Edited answer 21 december 2011 в 10:49
10
0
Pridať otázku
Kategórie
Všetky
Technológia
Kultúra / Rekreácia
Život / Umenie
Veda
Profesionálne
Obchod
Používatelia
Všetky
New
Popular
1
Inessa bu
Registered pred mesiacom
2
Denis Babushkin
Registered pred mesiacom
3
asakuno asakuno
Registered pred mesiacom
4
aldo salerno
Registered pred mesiacom
5
Анна Батицкая
Registered pred mesiacom
Artificial intelligence to parse product page
productapi.dev
DE
EL
ES
FR
ID
IT
JA
NL
NO
PT
RO
RU
SK
TR
ZH
© kzen.dev 2023
Zdroj
stackoverflow.com
na základe licencie cc by-sa 3.0 s uvedením autora