Saya ingin menulis aturan pemilih CSS yang memilih semua elemen itu tidak memiliki kelas tertentu. Misalnya, diberikan HTML berikut:
<html class="printable">
<body class="printable">
<h1 class="printable">Example</h1>
<nav>
<!-- Some menu links... -->
</nav>
<a href="javascript:void(0)" onclick="javascript:self.print()">Print me!</a>
<p class="printable">
This page is super interresting and you should print it!
</p>
</body>
</html>
Saya ingin menulis pemilih yang memilih semua elemen yang tidak memiliki kelas "cetak" yang, dalam hal ini, adalah nav dan sebuah elemen.
Apakah ini mungkin?
CATATAN: dalam HTML aktual di mana saya ingin menggunakan ini, akan ada lebih banyak elemen yang tidak memiliki kelas "yang dapat dicetak" daripada yang dilakukan (saya sadar itu sebaliknya dalam contoh di atas).
sumber
:not()
di layar, ia juga tidak akan mendukungnya dalam bentuk cetak.:not()
hanya membutuhkan pemilih sederhana yang artinya tidak dapat berisi pemilih yang disarangkan seperti:not(div .printable)
- lihat sintaks Selektor W3C:not(.active)
aturan Anda mungkin hanya ditimpa oleh properti dalam aturan dengan prioritas lebih tinggi.:not()
adalah argumennya, yang artinya:not(div)
sama spesifik untukdiv
,:not(.cls)
untuk.cls
dan:not(#id)
untuk#id
.Sebenarnya, ini akan memilih apa pun yang tidak memiliki kelas css (
class="css-selector"
) diterapkan untuk itu.Saya membuat demo jsfiddle
Apakah ini didukung? Ya: Caniuse.com (diakses 02 Jan 2020) :
Edit lucu, saya Googling untuk kebalikan dari: tidak. Negasi CSS?
sumber
Kelas
:not
pseudo negasiAnda dapat menggunakan
:not
untuk mengecualikan subset dari elemen yang cocok, dipesan seperti yang Anda lakukan pemilih CSS normal.Contoh sederhana: tidak termasuk kelas
div:not(.class)
Akan memilih semua
div
elemen tanpa kelas.class
Contoh kompleks: tidak termasuk menurut jenis / hierarki
:not(div) > div
Akan memilih semua
div
elemen yang bukan anak dari yang laindiv
Contoh kompleks: rantai pemilih semu
Dengan pengecualian penting karena tidak dapat memilah / menyeleksi
:not
selektor dan elemen semu, Anda dapat menggunakan bersama dengan selektor semu lainnya.Dukungan Browser , dll.
:not
adalah pemilih level CSS3 , pengecualian utama dalam hal dukungan adalah IE9 +Spek juga membuat poin yang menarik:
sumber
:not(div) > div
akan bekerja dengan orang tua langsung. Bagaimana dengan kakek lain?Saya pikir ini harus berhasil:
Dari jawaban "negative css selector" .
sumber
Hanya ingin berkontribusi bahwa jawaban di atas: tidak () bisa sangat efektif dalam bentuk sudut, daripada menciptakan efek atau menyesuaikan tampilan / DOM,
Pastikan bahwa saat memuat halaman Anda, bidang input hanya akan menampilkan yang tidak valid (batas merah atau latar belakang, dll) jika mereka memiliki data yang ditambahkan (yaitu tidak lagi asli) tetapi tidak valid.
sumber
Contoh
// Opacity 0,6 semua "bagian-" tetapi tidak "bagian-nama"
sumber
Kamu bisa menggunakan
:not(.class)
pemilih seperti yang disebutkan sebelumnya.Jika Anda peduli dengan kompatibilitas Internet explorer, saya sarankan Anda menggunakan http://selectivizr.com/ .
Tapi ingat untuk menjalankannya di bawah apache kalau tidak Anda tidak akan melihat efeknya.
sumber
Menggunakan
:not()
kelas pseudo:Untuk memilih semuanya kecuali elemen tertentu (atau elemen). Kita bisa menggunakan
:not()
pseudo class CSS . Kelas:not()
pseudo membutuhkan aCSS
pemilih sebagai argumennya. Pemilih akan menerapkan gaya ke semua elemen kecuali untuk elemen yang ditentukan sebagai argumen.Contoh:
Kita sudah dapat melihat kekuatan dari kelas semu ini, ini memungkinkan kita untuk menyelaraskan pemilih kita dengan mengecualikan elemen-elemen tertentu. Selanjutnya, kelas semu ini meningkatkan kekhususan pemilih . Sebagai contoh:
sumber
Jika Anda ingin menu kelas tertentu memiliki CSS tertentu jika kelas tidak masuk :
sumber
Seperti yang orang lain katakan, Anda cukup cantumkan: not (.class). Untuk penyeleksi CSS, saya sarankan mengunjungi tautan ini, sudah sangat membantu sepanjang perjalanan saya: https://code.tutsplus.com/tutorials/the-30-css-selectors-you-must-memorize--net-16048
Kelas pseudo negasi sangat membantu. Katakanlah saya ingin memilih semua div, kecuali yang memiliki id wadah. Cuplikan di atas akan menangani tugas itu dengan sempurna.
Atau, jika saya ingin memilih setiap elemen (tidak disarankan) kecuali untuk tag paragraf, kita dapat melakukan:
sumber