Przeciwieństwem visibility: hidden
jest visibility: visible
. Podobnie jest coś przeciwnegodisplay: none
?
Wiele osób wprawia w zakłopotanie zastanawianie się, jak pokazać element, gdy już jest display: none
, ponieważ nie jest to tak jasne, jak użycie visibility
właściwości.
Mógłbym po prostu użyć visibility: hidden
zamiast display: none
, ale to nie daje tego samego efektu, więc nie zamierzam z tym.
display
wartości byłoby w porządku. (I to tylko moja opinia, oczywiście: być może ludziom podobała się ta lista.)Odpowiedzi:
display: none
nie ma dosłownego przeciwieństwa jakvisibility:hidden
ma.visibility
Własność decyduje, czy dany element jest widoczny, czy nie. Dlatego ma dwa stany (visible
ihidden
), które są sobie przeciwne.display
Nieruchomość jednak decyduje, jakie przepisy układu elementem będzie. Istnieje kilka różnych rodzajów reguł dla jak elementy będą układać się w CSS, więc istnieje kilka różnych wartości (block
,inline
,inline-block
itd - patrz dokumentacja dla tych wartości tutaj ).display:none
usuwa element z układu strony całkowicie, jakby go nie było.Wszystkie inne wartości
display
powodują, że element jest częścią strony, więc w pewnym sensie wszystkie są przeciwnedisplay:none
.Ale nie ma jednej wartości, która jest bezpośrednią odwrotnością
display:none
- tak jak nie ma jednej fryzury, która byłaby przeciwieństwem „łysiny”.źródło
display: initial
o usuniętej odpowiedzi własnej - w przypadku przeglądarek implementujących CSS 2.1 jest to synonimdisplay: inline
. Nie resetuje siędisplay
do domyślnych ustawień przeglądarki dla danego elementu - nie to oznacza „wartość początkowa”.display:none
„ wtedy czytasz ”, tak jakby nie było żadnej fryzury, która byłaby przeciwna łysemu „ Wow plus 1, ładnie mówiąc.Prawdziwe przeciwieństwo
display: none
nie ma (jeszcze).Ale
display: unset
jest bardzo blisko i działa w większości przypadków.Z MDN (Mozilla Developer Network):
Należy również zauważyć, że
display: revert
jest obecnie opracowywany. Szczegóły w MDN .źródło
display: initial
?Przy zmianie elementu
display
w JavaScript, w wielu przypadkach odpowiednia opcja do „cofania” wynikiemelement.style.display = "none"
jestelement.style.display = ""
. Spowoduje to usunięciedisplay
deklaracji zstyle
atrybutu, przywracając rzeczywistą wartośćdisplay
właściwości do wartości ustawionej w arkuszu stylów dla dokumentu (do domyślnej przeglądarki, jeśli nie zostanie zdefiniowana w innym miejscu). Ale bardziej niezawodnym podejściem jest posiadanie klasy w stylu CSSi dodawanie / usuwanie tej nazwy klasy do / z
element.className
.źródło
.element { display: none }
(zdefiniowane na przykład w bibliotece CSS lib),.element { display: '' !important }
nie będzie działać. Musisz użyć.element { display: unset !important }
display:none
tylko w JavaScript. Oczywiście pusty ciąg nie będzie działał w CSS, ponieważ jest to niepoprawna wartość. Jednakdisplay: unset
sugerujesz, że nie przywrócisz, np. Domyślnydisplay:block
dla a<div>
lub domyślnydisplay:table-row
dla a<tr>
, to skutecznie zamienia wszystkodisplay:inline
(tak jakdisplay:initial
). Aby przywrócić domyślną wartość przeglądarki dla elementu, istniejedisplay:revert
, ale nie jest ona dobrze obsługiwana ( caniuse.com/#feat=css-revert-value ).możesz użyć
Działa normalnie .... Jest to małe hackowanie w css;)
źródło
display
właściwości, więc jest po prostu ignorowana i skutecznie działa jakelement.style.display = ''
przypisanie (patrz moja odpowiedź powyżej).display: chunk norris;
tego samego efektu przy odrobinie kopnięcia..element { display: none }
(zdefiniowane na przykład w bibliotece CSS lib),.element { display: normal !important }
nie będzie działać. Musisz użyć.element { display: unset !important }
Używam
display:block;
To działa dla mnieźródło
block
, ponieważ ogólnie nie jest to, co chcesz, dlainline
elementu takiego jak<span>
na przykład.Jak wyjaśnia Paul, nie ma dosłownego przeciwieństwa wyświetlania: żaden w HTML, ponieważ każdy element ma inny domyślny sposób wyświetlania, a także można zmienić sposób wyświetlania za pomocą klasy lub stylu wbudowanego itp.
Jednak jeśli użyjesz czegoś takiego jak jQuery, ich funkcje show i hide zachowują się tak, jakby nie istniało przeciwieństwo wyświetlania none. Gdy się ukryjesz, a następnie ponownie wyświetlisz element, wyświetli się dokładnie w taki sam sposób, jak przed ukrywaniem. Robią to, przechowując starą wartość właściwości display podczas ukrywania elementu, aby po ponownym wyświetleniu wyświetlał się w taki sam sposób, jak przed ukrywaniem. https://github.com/jquery/jquery/blob/740e190223d19a114d5373758127285d14d6b71e/src/css.js#L180
Oznacza to, że jeśli ustawisz na przykład div, aby wyświetlał się w tekście lub w wierszu, i ukryjesz go, a następnie pokażesz ponownie, będzie on ponownie wyświetlany jako wyświetlany w wierszu lub w wierszu tak, jak poprzednio
scenariusz:
Zauważ, że właściwość display div pozostanie stała nawet po jej ukryciu (display: none) i wyświetleniu ponownie.
źródło
W przypadku arkusza stylów przyjaznego dla drukarki używam:
Użyłem tego, gdy potrzebowałem wydrukować formularz zawierający wartości, a pola wejściowe były trudne do wydrukowania. Dodałem więc wartości zawinięte w tag span.print_only (div.print_only użyto gdzie indziej), a następnie zastosowałem klasę .no_print do pól wejściowych. Tak więc na ekranie zobaczysz pola wprowadzania, a po wydrukowaniu tylko wartości. Jeśli chcesz się zachwycić, możesz użyć JS do aktualizacji wartości w znacznikach span, gdy pola zostały zaktualizowane, ale w moim przypadku nie było to konieczne. Być może nie jest to najbardziej eleganckie rozwiązanie, ale zadziałało dla mnie!
źródło
Możesz użyć display: block
Przykład:
źródło
Zetknąłem się z tym wyzwaniem, budując aplikację, w której chciałem ukryć tabelę dla niektórych użytkowników, ale nie dla innych.
Początkowo ustawiłem go jako display: none ale display: inline-block dla tych użytkowników, których chciałem zobaczyć, ale wystąpiły problemy z formatowaniem, których można się spodziewać (konsolidacja kolumn lub ogólnie bałagan).
W ten sposób obejrzałem najpierw tabelę, a następnie „wyświetl: brak” dla użytkowników, których nie chciałem widzieć. W ten sposób sformatował się normalnie, ale potem zniknął w razie potrzeby.
Trochę rozwiązania bocznego, ale może komuś pomóc!
źródło
przeciwieństwo „none” to „flex” podczas pracy z React Native.
źródło
widoczność: ukryty ukryje element, ale element należy do DOM. A w przypadku wyświetlania: brak usunie element z DOM.
Możesz więc ukryć lub odkryć element. Ale kiedy go usuniesz (mam na myśli brak wyświetlania), nie ma wyraźnej przeciwnej wartości. display ma kilka wartości, takich jak display: block, display: inline, display: inline-block i wiele innych. możesz to sprawdzić w W3C.
źródło
display
?Najlepsza odpowiedź na
display: none
tolub
źródło
display:normal
. Zobacz developer.mozilla.org/en-US/docs/Web/CSS/displayMożesz użyć tego,
display:block;
a także dodaćoverflow:hidden;
źródło
display: block
nie działa dobrze na…<span>
lub<td>
… a poprzednia odpowiedź już wspomniaładisplay: block
.overflow: hidden
. Czemu? Po co to dodawać? Nie ma to nic wspólnego z cofaniemdisplay: none
.Najlepszym „przeciwieństwem” byłoby przywrócenie wartości domyślnej, która wynosi:
źródło