Pertama-tama, saya menganggap ini terlalu rumit untuk CSS3, tetapi jika ada solusi di sana, saya akan senang menggunakannya.
HTML cukup mudah.
<div class="parent">
<div class="child">
Text Block 1
</div>
</div>
<div class="parent">
<div class="child">
Text Block 2
</div>
</div>
Div anak diatur untuk ditampilkan: tidak ada; secara default, tetapi kemudian berubah untuk menampilkan: blok; ketika mouse berada di atas div induk. Masalahnya adalah bahwa markup ini muncul di beberapa tempat di situs saya, dan saya hanya ingin anak itu ditampilkan jika mouse di atas orang tuanya, dan tidak jika mouse berada di atas salah satu dari orang tua lainnya (mereka semua memiliki kelas yang sama nama dan tanpa ID).
Saya sudah mencoba menggunakan $(this)
dan .children()
tidak berhasil.
$('.parent').hover(function(){
$(this).children('.child').css("display","block");
}, function() {
$(this).children('.child').css("display","none");
});
sumber
:hover
adalah salah satu "Dynamic pseudo-class" yang didefinisikan oleh CSS2 ( inilah spesifikasi ). Berikut adalah contoh cepat: http://jsfiddle.net/5FLr4/ . ini bekerja untuk saya..parent:not(:hover) .child { display: none; }
tampaknya bekerja dengan baik untuk saya, meskipun saya tentu tidak khawatir tentang IE6. Tetapi dengan cara ini saya dapat menggunakannya pada elemen yang saya tidak ingin memilikidisplay
properti seragam .Tidak perlu menggunakan JavaScript atau jquery, CSS sudah cukup:
MELIHAT DEMO
sumber
Gunakan
toggleClass()
.dimana
color
kelasnya Anda dapat menata kelas sesuai keinginan untuk mencapai perilaku yang Anda inginkan. Contoh menunjukkan bagaimana kelas ditambahkan dan dihapus saat mouse masuk dan keluar.Lihat contoh Bekerja di sini .
sumber
sumber
Jawaban Stephen benar, tetapi inilah adaptasi saya atas jawabannya:
HTML
CSS
jQuery
Anda dapat melihat contoh ini bekerja di jsFiddle .
sumber
Saya memiliki apa yang saya pikir merupakan solusi yang lebih baik, karena dapat ditingkatkan ke lebih banyak level, sebanyak yang diinginkan, tidak hanya dua atau tiga.
Saya menggunakan batas, tetapi juga bisa dilakukan dengan gaya apa pun yang diinginkan, seperti warna latar belakang.
Dengan perbatasan, idenya adalah untuk:
Anda dapat mengujinya di: http://jsbin.com/ubiyo3/13
Dan ini kodenya:
sumber
Jika Anda menggunakan gaya Twitter Bootstrap dan JS dasar untuk menu tarik turun:
Ini adalah bagian yang hilang untuk membuat sticky-dropdown (yang tidak mengganggu)
sumber
Tidak yakin apakah ada alasan mengerikan untuk melakukan ini atau tidak, tetapi tampaknya bekerja dengan saya di versi terbaru Chrome / Firefox tanpa masalah kinerja yang terlihat dengan banyak elemen pada halaman.
Tetapi dengan cara ini, yang Anda butuhkan hanyalah menerapkan
parent-hover-show
ke elemen dan sisanya diurus, dan Anda bisa menjaga apa pun jenis tampilan default yang Anda inginkan tanpa selalu "memblokir" atau membuat beberapa kelas untuk setiap jenis.sumber
Untuk mengubahnya dari css Anda bahkan tidak perlu mengatur kelas anak
sumber