Pertanyaan Menggabungkan: anak terakhir dengan: bukan pemilih (.class) dalam CSS


Apakah mungkin untuk memilih anak terakhir yang TIDAK memiliki kelas attr? Seperti itu:

<tr> ... </tr>
<tr> ... </tr>
<tr> ... </tr>
<tr class="table_vert_controls"> ... </tr>

Saya ingin memilih baris ketiga, dalam hal ini.

Saya mencoba yang berikut, yang tidak berfungsi:

tr:not(.table_vert_controls):last-child

Terima kasih sebelumnya.


32
2017-11-28 18:01


asal


Jawaban:


Tidak dengan pemilih CSS saja, tidak, seperti :last-child secara khusus melihat anak terakhir, dan tidak ada yang serupa :last-of-class kelas pseudo. Lihat jawaban saya untuk pertanyaan terkait ini.

Hingga akhir 2015, implementasi telah dimulai dengan perlahan-lahan mulai dari perpanjangan Selectors 4 ke :nth-child() dan :nth-last-child() yang memungkinkan Anda untuk lulus pemilih sewenang-wenang sebagai argumen (lebih lanjut tentang itu juga dalam pembaruan untuk jawaban terkait). Anda kemudian akan dapat menulis yang berikut:

tr:nth-last-child(1 of :not(.table_vert_controls))

Meskipun implementasi baru-baru ini mulai dikapalkan, masih perlu waktu setidaknya beberapa tahun lagi agar ini dapat didukung secara luas (mulai April 2018, dua setengah tahun setelah browser pertama diluncurkan, Safari tetap satu-satunya browser yang melakukannya). Sementara itu, Anda harus menggunakan yang lain, seperti kelas tambahan tepat sebelum kelas yang dimaksud, atau pemilih jQuery:

$('tr:not(.table_vert_controls):last')

27
2017-11-28 18:07