Adakah mungkin untuk mengesan keterlihatan elemen dalam CSS?
P粉316423089
2023-08-22 22:28:55
<p>Saya melihat melalui API, mencari beberapa pemilih pseudo seperti <code>:visible</code> atau <code>:hidden</code>, tetapi kecewa apabila mendapati tiada pemilih sedemikian wujud . Memandangkan jQuery telah menyokong pemilih ini untuk sementara waktu, saya harap ia akan dilaksanakan. Idea saya ialah saya hanya mahu menunjukkan elemen tertentu apabila elemen di sebelahnya disembunyikan, tetapi saya tidak mahu menggunakan JavaScript untuk melakukannya. Adakah terdapat sebarang pilihan? </p>
Ia bergantung kepada apa yang anda maksudkan dengan "sebelahnya". Anda boleh memilih elemen mengikut keterlihatan menggunakan Pemilih Atribut. Atau pilih daripada di sini:
Untuk mengakses elemen mengikut keterlihatan anda boleh menggunakan cth. asterisk pemilih atribut padanan subrentetan
[att*=val]
。假设div的样式是使用visibility: hidden;
Tersembunyi:Persoalannya sekarang ialah bagaimana untuk mengakses elemen "sebelahnya". Jika elemen yang anda cuba sasarkan berada di belakang elemen tersembunyi (dalam induk yang sama), gunakan pemilih +:
Jika sebelum ini, tiada apa yang boleh anda lakukan mengenainya, tetapi anda boleh mencari beberapa penyelesaian dalam jawapan kepada soalan ini: Adakah terdapat pemilih CSS "adik-beradik terdahulu"?
Tidak, itu tidak mungkin, mahupun , sekurang-kurangnya tidak dalam lembaran gaya.
Jika tidak, anda akan mencipta gelung tak terhingga:
Elemen kelihatan pada mulanya, kemudian pemilih memilihnya dan menyembunyikannya, kemudian pemilih tidak digunakan, ia menjadi kelihatan semula, dan seterusnya.
Dalam JS API, pemilih kelas pseudo dibenarkan, seperti
querySelector
. Tetapi setakat yang saya tahu, belum ada perkara seperti itu, dan tidak mungkin untuk melaksanakan hanya menggunakan CSS.