Di CSS, *akan cocok dengan elemen apa pun.
Seringkali, *|*digunakan sebagai ganti *untuk mencocokkan semua elemen. Ini umumnya digunakan untuk tujuan pengujian.
Apa perbedaan antara *dan *|*dalam CSS?
Di CSS, *akan cocok dengan elemen apa pun.
Seringkali, *|*digunakan sebagai ganti *untuk mencocokkan semua elemen. Ini umumnya digunakan untuk tujuan pengujian.
Apa perbedaan antara *dan *|*dalam CSS?
Jawaban:
Sesuai Spesifikasi Pemilih W3C :
Selektor universal memungkinkan komponen namespace opsional. Ini digunakan sebagai berikut:
ns|*
semua elemen di namespace ns
*|*
semua elemen
|*
semua elemen tanpa namespace
*
jika tidak ada namespace default yang ditentukan, ini setara dengan * | *. Kalau tidak, ini setara dengan ns | * di mana ns adalah namespace default.
Jadi, tidak *dan *|*tidak selalu sama. Jika ruang nama default disediakan maka *pilih hanya elemen yang merupakan bagian dari namespace itu.
Anda dapat melihat perbedaan secara visual menggunakan dua cuplikan di bawah ini. Dalam yang pertama, namespace default didefinisikan dan sehingga *pemilih menerapkan latar belakang berwarna krem hanya untuk elemen yang merupakan bagian dari namsepace sedangkan *|*berlaku perbatasan untuk semua elemen.
@namespace "http://www.w3.org/2000/svg";
* {
background: beige;
}
*|* {
border: 1px solid;
}
<a href="#">This is some link</a>
<svg xmlns="http://www.w3.org/2000/svg">
<a xlink:href="#">
<text x="20" y="20">This is some link</text>
</a>
</svg>
Dalam cuplikan di bawah ini tidak ada namespace default yang ditentukan dan keduanya *serta *|*berlaku untuk semua elemen dan semuanya mendapatkan latar belakang krem dan perbatasan hitam. Dengan kata lain, mereka bekerja dengan cara yang sama ketika tidak ada namespace default yang ditentukan.
* {
background: beige;
}
*|* {
border: 1px solid;
}
<a href="#">This is some link</a>
<svg xmlns="http://www.w3.org/2000/svg">
<a xlink:href="#">
<text x="20" y="20">This is some link</text>
</a>
</svg>
Seperti yang ditunjukkan oleh BoltClock dalam komentar ( 1 , 2 ), awalnya namespaces hanya diterapkan pada bahasa berbasis XML seperti XHTML, SVG dll, tetapi sesuai spesifikasi terbaru, semua elemen HTML (yaitu, elemen dalam namespace HTML) diberi namespaced http://www.w3.org/1999/xhtml. Firefox mengikuti perilaku ini dan konsisten di semua agen pengguna HTML5. Anda dapat menemukan informasi lebih lanjut dalam jawaban ini .
http://www.w3.org/1999/xhtml
*|*mewakili pemilih "semua elemen dalam ruang nama apa pun". Menurut W3C , pemilih dibagi menjadi:
ns | E
Di mana ns adalah namespace dan E adalah elemen. Secara default, tidak ada ruang nama yang dideklarasikan. Jadi kecuali namespace dideklarasikan secara eksplisit, *|*dan *akan memilih elemen yang sama.
Dalam CSS, * akan cocok dengan elemen apa pun.
| digunakan untuk mencocokkan elemen tertentu yang dipilih . Keduanya adalah pemilih yang digunakan untuk tujuan pengujian kami
*|*artinya dalam CSS?