Bagaimana cara menulis :hover
dan :visited
syarat untuk a:before
?
Saya mencoba a:before:hover
tetapi tidak berhasil
Bagaimana cara menulis :hover
dan :visited
syarat untuk a:before
?
Saya mencoba a:before:hover
tetapi tidak berhasil
Jawaban:
Ini tergantung pada apa yang sebenarnya Anda coba lakukan.
Jika Anda hanya ingin menerapkan gaya ke :before
elemen pseudo ketika a
elemen cocok dengan kelas pseudo, Anda perlu menulis a:hover:before
atau a:visited:before
sebagai gantinya. Perhatikan elemen pseudo muncul setelah pseudo-class (dan pada kenyataannya, di akhir seluruh pemilih). Perhatikan juga bahwa mereka adalah dua hal yang berbeda; memanggil mereka berdua "pseudo-selektor" akan membingungkan Anda setelah Anda mengalami masalah sintaksis seperti ini.
Jika Anda menulis CSS3, Anda dapat menunjukkan elemen pseudo dengan titik dua untuk membuat perbedaan ini lebih jelas. Karena itu, a:hover::before
dan a:visited::before
. Tetapi jika Anda mengembangkan untuk browser lawas seperti IE8 dan yang lebih lama, maka Anda dapat menggunakan saja satu titik dua.
Urutan khusus pseudo-class dan pseudo-elements ini dinyatakan dalam spesifikasi :
Satu elemen semu dapat ditambahkan ke urutan terakhir dari pemilih sederhana dalam pemilih.
Sebuah urutan penyeleksi sederhana adalah rantai penyeleksi sederhana yang tidak dipisahkan oleh combinator a. Itu selalu dimulai dengan pemilih jenis atau pemilih universal. Tidak ada pemilih jenis lain atau pemilih universal yang diizinkan dalam urutan.
Sebuah pemilih sederhana adalah salah satu jenis pemilih, pemilih universal, pemilih atribut, pemilih kelas, ID pemilih, atau pseudo-class.
Kelas semu adalah pemilih sederhana. Elemen pseudo, bagaimanapun, tidak, meskipun menyerupai pemilih sederhana.
Namun, untuk aksi-pengguna pseudo-class seperti :hover
1 , jika Anda memerlukan efek ini untuk diterapkan hanya ketika pengguna berinteraksi dengan pseudo-elemen itu sendiri tetapi bukan a
elemen, maka ini tidak mungkin dilakukan selain melalui beberapa solusi yang bergantung pada tata letak yang tidak jelas. . Seperti yang tersirat oleh teks, elemen standar CSS pseudo saat ini tidak dapat memiliki kelas pseudo. Dalam hal ini, Anda perlu menerapkan :hover
elemen anak yang sebenarnya alih-alih elemen pseudo.
1 Tentu saja, ini tidak berlaku untuk menghubungkan kelas pseudo seperti :visited
dalam pertanyaan, karena elemen pseudo bukan tautan.
text-decoration
.
Tulis a:hover::before
bukan a::before:hover
: contoh .
:after
vs CSS3 ::after
developer.mozilla.org/en-US/docs/Web/CSS/::after (single :
memiliki dukungan yang lebih baik)
Untuk mengubah teks tautan menu saat mouseover. (Teks bahasa berbeda saat di arahkan) di sini adalah
html:
<a align="center" href="#"><span>kannada</span></a>
css:
span {
font-size:12px;
}
a {
color:green;
}
a:hover span {
display:none;
}
a:hover:before {
color:red;
font-size:24px;
content:"ಕನ್ನಡ";
}
a:hover::before
dengan text-decoration: underline
, yang menyebabkan garis bawah untuk mengambil warna merah dari teks pengganti.
Coba gunakan .card-listing:hover::after
hover
dan after
gunakan ::
saja
Jawaban BoltClock benar. Satu-satunya hal yang ingin saya tambahkan adalah bahwa jika Anda hanya ingin memilih elemen pseudo, masukkan rentang.
Sebagai contoh:
<li><span data-icon='u'></span> List Element </li>
dari pada:
<li> data-icon='u' List Element</li>
Dengan cara ini Anda bisa mengatakannya
ul [data-icon]:hover::before {color: #f7f7f7;}
yang hanya akan menyoroti elemen pseudo, bukan seluruh elemen li
Anda juga dapat membatasi tindakan Anda hanya pada satu kelas menggunakan braket runcing kanan (">"), seperti yang telah saya lakukan dalam kode ini:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Document</title>
<style type="text/css">
span {
font-size:12px;
}
a {
color:green;
}
.test1>a:hover span {
display:none;
}
.test1>a:hover:before {
color:red;
content:"Apple";
}
</style>
</head>
<body>
<div class="test1">
<a href="#"><span>Google</span></a>
</div>
<div class="test2">
<a href="#"><span>Apple</span></a>
</div>
</body>
</html>
Catatan: Arahkan kursor: sebelum sakelar hanya berfungsi pada kelas .test1