Pemilih CSS untuk selain anak pertama dan anak terakhir

105

Saya membuat situs web yang sangat canggih. Pertanyaan saya: Apakah mungkin untuk memilih semua anak lain kecuali untuk :first-childdan :last-child? Saya tahu ada :not()pemilih tetapi tidak berfungsi dengan lebih dari satu yang tidak ada di dalam tanda kurung. Inilah yang saya miliki:

#navigation ul li:not(:first-child, :last-child) {
    background: url(images/UISegmentBarButtonmiddle@2x.png);
    background-size: contain;
}
Daniel
sumber
Anda sangat berani untuk menggunakan ini. Perhatikan bahwa ini hanya akan berfungsi di browser modern, dan itu pasti tidak akan berfungsi pada anti-browser yang digunakan semua orang.
singkirkan
2
@Radu: "Saya membuat situs web yang sangat canggih" Tidak mengherankan ...
BoltClock
1
@BoltClock, benar, hanya mengatakan ... Kata peringatan. Tapi bagaimanapun, jika targetnya adalah Safari iOS seperti yang disarankan oleh nama gambar, maka itu harus aman.
singkirkan
1
Sekarang saya mengerti mengapa pertanyaan ini terlihat begitu familiar ... stackoverflow.com/questions/7403129/combining-not-selectors
BoltClock
"anti-browser"? Apakah itu Google Ultron baru yang selalu saya dengar?
Jonathan Dumaine

Jawaban:

262

Coba #navigation ul li:not(:first-child):not(:last-child).

Salman von Abbas
sumber
KAMU LUAR BIASA! Terima kasih!
Daniel
1
rofl, kebodohan saya not()bahkan mencoba ini sebelum googling: P jenius
SidOfc
1
Itu salah: not (A and B)tidak sama dengan (not A) and (not B), itu lebih baik (not A) or (not B). Tidak bekerja.
Hibou57
2
Tidak apa yang dikatakan Salman Abbas benar. Anda memikirkan koma; #navigation ul li: not (: first-child), #navigation ul li: not (: last-child)
user847074
20

Tentu itu akan berhasil, Anda hanya perlu menggunakan dua pemilih 'bukan'.

#navigation ul li:not(:first-child):not(:last-child) {

Ini akan berlanjut ke baris setelah yang pertama, mengatakan "bukan anak pertama" dan "bukan anak terakhir".

animuson
sumber