Kebalikan dari visibility: hidden
adalah visibility: visible
. Demikian pula, adakah yang sebaliknyadisplay: none
?
Banyak orang menjadi bingung mencari tahu bagaimana menunjukkan elemen ketika itu memiliki display: none
, karena itu tidak sejelas menggunakan visibility
properti.
Saya hanya bisa menggunakan visibility: hidden
bukan display: none
, tetapi tidak memberikan efek yang sama, jadi saya tidak akan menggunakannya.
display
nilai yang mungkin akan baik-baik saja. (Dan itu hanya pendapat saya tentu saja: mungkin orang-orang benar-benar menyukai daftar itu ada di sana.)Jawaban:
display: none
tidak memiliki lawan literal sepertivisibility:hidden
halnya.The
visibility
properti memutuskan apakah elemen terlihat atau tidak. Karena itu ia memiliki dua negara (visible
danhidden
), yang berseberangan satu sama lain.The
display
properti, bagaimanapun, memutuskan apa aturan tata letak elemen akan mengikuti. Ada beberapa jenis aturan untuk bagaimana elemen akan meletakkan diri dalam CSS, sehingga ada beberapa nilai yang berbeda (block
,inline
,inline-block
dll - lihat dokumentasi untuk nilai-nilai ini di sini ).display:none
menghapus elemen dari tata letak halaman sepenuhnya, seolah-olah tidak ada di sana.Semua nilai lain untuk
display
menyebabkan elemen menjadi bagian dari halaman, jadi dalam arti semuanya berlawanandisplay:none
.Tetapi tidak ada satu nilai pun yang menjadi kebalikannya
display:none
- sama seperti tidak ada satu gaya rambut yang bertolak belakang dengan "botak".sumber
display: initial
dalam jawaban-sendiri yang dihapus - untuk browser yang menerapkan CSS2.1 identik dengan itudisplay: inline
. Itu tidak mengatur ulangdisplay
ke default browser untuk elemen yang diberikan - bukan itu yang dimaksud dengan "nilai awal".display:none
" maka Anda membaca "sama seperti tidak ada satu gaya rambut yang kebalikan dari botak " Wow plus 1, dengan baik menempatkan.Kebalikan dari
display: none
sana belum (belum).Tapi
display: unset
sangat dekat dan berfungsi dalam banyak kasus.Dari MDN (Jaringan Pengembang Mozilla):
Perhatikan juga bahwa
display: revert
saat ini sedang dikembangkan. Lihat MDN untuk detailnya.sumber
display: initial
?Saat mengubah elemen
display
dalam Javascript, dalam banyak kasus pilihan yang cocok untuk 'membatalkan' hasilnyaelement.style.display = "none"
adalahelement.style.display = ""
. Ini menghapusdisplay
deklarasi daristyle
atribut, mengembalikan nilai aktualdisplay
properti ke nilai yang ditetapkan dalam stylesheet untuk dokumen (ke default browser jika tidak didefinisikan ulang di tempat lain). Tetapi pendekatan yang lebih dapat diandalkan adalah memiliki kelas seperti CSSdan menambahkan / menghapus nama kelas ini ke / dari
element.className
.sumber
.element { display: none }
(didefinisikan dalam CSS lib misalnya) dengan.element { display: '' !important }
itu tidak akan berfungsi. Anda harus menggunakan.element { display: unset !important }
display:none
hanya dalam JavaScript. Tentu saja, string kosong tidak akan berfungsi di CSS, karena itu nilai yang tidak valid. Namun,display: unset
Anda menyarankan untuk tidak mengembalikan, misalnya, defaultdisplay:block
untuk a<div>
atau defaultdisplay:table-row
untuk a<tr>
, secara efektif mengubah semuanya menjadidisplay:inline
(sepertidisplay:initial
). Untuk mengembalikan nilai default browser untuk elemen, adadisplay:revert
, tetapi tidak didukung dengan baik ( caniuse.com/#feat=css-revert-value ).kamu bisa memakai
Ini berfungsi seperti biasa .... Ini peretasan kecil di css;)
sumber
display
properti, jadi itu hanya diabaikan dan secara efektif berfungsi sepertielement.style.display = ''
penugasan (lihat jawaban saya di atas).display: chunk norris;
efek yang sama, dengan tendangan yang lebih banyak..element { display: none }
(didefinisikan dalam CSS lib misalnya) dengan.element { display: normal !important }
itu tidak akan berfungsi. Anda harus menggunakan.element { display: unset !important }
Saya menggunakan
display:block;
ini bekerja untuk sayasumber
block
, itu bukan apa yang Anda inginkan secara umum untukinline
elemen seperti<span>
misalnya.Seperti yang dijelaskan oleh Paul, tidak ada kebalikan dari tampilan: tidak ada dalam HTML karena setiap elemen memiliki tampilan default yang berbeda dan Anda juga dapat mengubah tampilan dengan gaya kelas atau inline dll.
Namun jika Anda menggunakan sesuatu seperti jQuery, fungsi show dan hide mereka berperilaku seolah-olah tidak ada tampilan yang berlawanan. Saat Anda bersembunyi, dan kemudian menampilkan elemen lagi, elemen itu akan ditampilkan dengan cara yang persis sama seperti sebelum disembunyikan. Mereka melakukan ini dengan menyimpan nilai lama dari properti tampilan pada persembunyian elemen sehingga ketika Anda menunjukkannya lagi itu akan ditampilkan dengan cara yang sama seperti sebelum Anda menyembunyikannya. https://github.com/jquery/jquery/blob/740e190223d19a114d5373758127285d14d6b71e/src/css.js#L180
Ini berarti bahwa jika Anda menetapkan div misalnya untuk menampilkan inline, atau inline-block dan Anda menyembunyikannya dan kemudian memperlihatkannya lagi, itu akan sekali lagi ditampilkan sebagai display inline atau inline-block sama seperti sebelumnya
naskah:
Perhatikan bahwa properti tampilan div akan tetap konstan bahkan setelah itu disembunyikan (tampilan: tidak ada) dan ditampilkan lagi.
sumber
Dalam hal stylesheet ramah printer, saya menggunakan yang berikut ini:
Saya menggunakan ini ketika saya perlu mencetak formulir yang berisi nilai-nilai dan bidang input sulit untuk dicetak. Jadi saya menambahkan nilai-nilai yang terbungkus tag span.print_only (div.print_only digunakan di tempat lain) dan kemudian menerapkan kelas .no_print ke kolom input. Jadi pada layar Anda akan melihat kolom input dan ketika dicetak, hanya nilainya. Jika Anda ingin menjadi mewah, Anda bisa menggunakan JS untuk memperbarui nilai dalam tag rentang ketika bidang diperbarui tetapi itu tidak perlu dalam kasus saya. Mungkin bukan solusi yang paling elegan tetapi berhasil untuk saya!
sumber
Anda dapat menggunakan tampilan: blok
Contoh:
sumber
Saya mengalami tantangan ini ketika membangun aplikasi di mana saya ingin meja disembunyikan untuk pengguna tertentu tetapi tidak untuk orang lain.
Awalnya saya mengaturnya sebagai tampilan: tidak ada tetapi kemudian menampilkan: inline-block untuk para pengguna yang ingin saya lihat tetapi saya mengalami masalah pemformatan yang mungkin Anda harapkan (kolom konsolidasi atau umumnya berantakan).
Cara saya mengatasinya adalah dengan menunjukkan tabel terlebih dahulu dan kemudian melakukan "display: none" untuk para pengguna yang saya tidak ingin melihatnya. Dengan cara ini, itu diformat secara normal tetapi kemudian menghilang sesuai kebutuhan.
Sedikit solusi lateral tetapi mungkin bisa membantu seseorang!
sumber
kebalikan dari 'none' adalah 'flex' saat bekerja dengan reaksi asli.
sumber
visibilitas: tersembunyi akan menyembunyikan elemen tetapi elemen adalah miliknya dengan DOM. Dan dalam hal tampilan: tidak ada yang akan menghapus elemen dari DOM.
Jadi, Anda memiliki opsi untuk elemen untuk menyembunyikan atau menyembunyikan. Tapi begitu Anda menghapusnya (maksud saya display tidak ada) itu tidak memiliki nilai yang berlawanan. display memiliki beberapa nilai seperti display: block, display: inline, display: inline-block dan banyak lainnya. Anda dapat memeriksanya dari W3C.
sumber
display
?Jawaban terbaik
display: none
adalahatau
sumber
display:normal
. Lihat developer.mozilla.org/en-US/docs/Web/CSS/displayAnda dapat menggunakan ini
display:block;
dan juga menambahkanoverflow:hidden;
sumber
display: block
tidak berfungsi dengan baik pada a<span>
atau a<td>
... dan jawaban sebelumnya telah disebutkandisplay: block
.overflow: hidden
. Mengapa? Apa gunanya menambahkan itu? Ini tidak ada hubungannya dengan membatalkan adisplay: none
."Lawan" terbaik adalah mengembalikannya ke nilai default yaitu:
sumber