Saya memiliki div
tag yang berisi beberapa ul
tag.
Saya dapat menetapkan properti CSS hanya untuk ul
tag pertama :
div ul:first-child {
background-color: #900;
}
Namun, upaya saya berikut untuk mengatur properti CSS untuk setiap ul
tag lain kecuali yang pertama tidak berfungsi:
div ul:not:first-child {
background-color: #900;
}
div ul:not(:first-child) {
background-color: #900;
}
div ul:first-child:after {
background-color: #900;
}
Bagaimana saya bisa menulis dalam CSS: "setiap elemen, kecuali yang pertama"?
sumber
Solusi CSS2 ini ("any
ul
after anotherul
") juga berfungsi dan didukung oleh lebih banyak browser.Tidak seperti
:not
dan:nth-sibling
, pemilih saudara yang berdekatan didukung oleh IE7 +.Jika Anda memiliki JavaScript yang mengubah properti ini setelah halaman dimuat, Anda harus melihat beberapa bug yang dikenal dalam implementasi IE7 dan IE8 ini. Lihat tautan ini .
Untuk halaman web statis apa pun, ini harus bekerja dengan sempurna.
sumber
ul ul div ul
(di mana elemen-elemen ini bersaudara), hanya ul kedua yang akan dipilih, karena yang terakhir tidak memilikiul
sebelumnya untuk dirinya sendiriKarena
:not
tidak diterima oleh IE6-8 , saya akan menyarankan Anda ini:Jadi Anda memilih setiap
ul
elemen induknya kecuali yang pertama .Lihat artikel Chris Coyer "Useful: nth-child Recipes" untuk
nth-child
contoh lebih lanjut .sumber
Mendukung IE7
sumber
not(:first-child)
sepertinya tidak berfungsi lagi. Setidaknya dengan versi Chrome dan Firefox yang lebih baru.Alih-alih, coba ini:
sumber
ul:not(:first-child)
berarti secara harfiah "ul
elemen apa pun yang bukan anak pertama dari induknya", jadi elemen tersebut tidak akan cocok dengan elemen pertamaul
jika elemen tersebut didahului oleh elemen lain (p
, pos, dll.). Sebaliknya,ul:not(:first-of-type)
berarti "ul
elemen apa pun kecuali 1ul
dalam wadah". Anda benar bahwa OP mungkin membutuhkan perilaku yang terakhir, tetapi penjelasan Anda agak menyesatkan.Anda dapat menggunakan pemilih mana saja dengan
not
sumber
Saya tidak beruntung dengan beberapa hal di atas,
Ini adalah satu-satunya yang benar-benar bekerja untuk saya
ul:not(:first-of-type) {}
Ini bekerja untuk saya ketika saya mencoba agar tombol pertama yang ditampilkan pada halaman tidak terpengaruh oleh opsi margin-kiri.
ini adalah opsi yang saya coba pertama tetapi tidak berhasil
ul:not(:first-child)
sumber
Anda dapat menggunakan pemilih Anda dengan
:not
seperti di bawah ini Anda dapat menggunakan pemilih mana saja di dalam:not()
Lebih banyak contoh
sumber
Seperti yang saya gunakan
ul:not(:first-child)
adalah solusi sempurna.Mengapa ini sempurna karena dengan menggunakan
ul:not(:first-child)
, kita dapat menerapkan CSS pada elemen dalam. Sepertili, img, span, a
tag dllTetapi ketika digunakan solusi lain:
dan
dan
dan
Ini membatasi hanya ul level CSS. Misalkan kita tidak dapat menggunakan CSS
li
sebagai `div ul + ul li '.Untuk elemen tingkat dalam Solusi pertama bekerja dengan sempurna.
dan seterusnya ...
sumber