Das Gegenteil von visibility: hidden
ist visibility: visible
. Gibt es auch ein Gegenteil für display: none
?
Viele Menschen sind verwirrt, wenn sie herausfinden, wie ein Element angezeigt werden soll, wenn es vorhanden ist display: none
, da dies nicht so klar ist wie die Verwendung der visibility
Eigenschaft.
Ich könnte nur visibility: hidden
anstelle von verwenden display: none
, aber es gibt nicht den gleichen Effekt, also gehe ich nicht damit.
display
Werte zu entfernen , wäre in Ordnung gewesen. (Und das ist natürlich nur meine Meinung: Vielleicht haben die Leute diese Liste wirklich gemocht.)Antworten:
display: none
hat kein wörtliches Gegenteil wievisibility:hidden
.Die
visibility
Eigenschaft entscheidet, ob ein Element sichtbar ist oder nicht. Es hat also zwei Zustände (visible
undhidden
), die einander entgegengesetzt sind.Die
display
Eigenschaft entscheidet jedoch, welchen Layoutregeln ein Element folgt. Es gibt verschiedene Arten von Regeln, wie Elemente selbst auslegen wird in CSS, so gibt es verschiedene Werte (block
,inline
,inline-block
usw. - finden Sie in der Dokumentation für diese Werte hier ).display:none
Entfernt ein Element vollständig aus dem Seitenlayout, als wäre es nicht vorhanden.Alle anderen Werte für
display
bewirken, dass das Element Teil der Seite ist, sodass sie in gewissem Sinne alle entgegengesetzt sinddisplay:none
.Aber es gibt keinen Wert, von dem das direkte Gegenteil ist
display:none
- genau wie es keine Frisur gibt, die das Gegenteil von "Glatze" ist.quelle
display: initial
stelle fest, dass Sie in der gelöschten Selbstantwort erwähnt haben - für Browser, die CSS2.1 implementieren, ist dies gleichbedeutend mitdisplay: inline
. Es wird nichtdisplay
auf die Browser-Standardeinstellung für ein bestimmtes Element zurückgesetzt - das bedeutet nicht "Anfangswert".display:none
" dann liest du "so als gäbe es keine Frisur, die das Gegenteil von kahl ist " Wow plus 1, schön ausgedrückt.Ein wahres Gegenteil dazu
display: none
gibt es (noch) nicht.Ist
display: unset
aber sehr nah und funktioniert in den meisten Fällen.Von MDN (Mozilla Developer Network):
Beachten Sie auch, dass
display: revert
derzeit entwickelt wird. Siehe MDN für Details.quelle
display: initial
?Wenn das Element der Wechsel
display
in Javascript, in vielen Fällen eine geeignete Option ‚Undo‘ das Ergebniselement.style.display = "none"
istelement.style.display = ""
. Dadurch wird diedisplay
Deklaration aus demstyle
Attribut entfernt und der tatsächliche Wert derdisplay
Eigenschaft auf den im Stylesheet für das Dokument festgelegten Wert zurückgesetzt (auf die Standardeinstellung des Browsers, wenn diese nicht an anderer Stelle neu definiert wurde). Der zuverlässigere Ansatz ist jedoch, eine Klasse in CSS zu habenund Hinzufügen / Entfernen dieses Klassennamens zu / von
element.className
.quelle
.element { display: none }
(z. B. in der CSS-Bibliothek definiert),.element { display: '' !important }
funktioniert dies nicht. Sie müssen verwenden.element { display: unset !important }
display:none
nur in JavaScript über "Rückgängigmachen" berichtet . Natürlich funktioniert die leere Zeichenfolge in CSS nicht, da es sich um den ungültigen Wert handelt. Hovewer,display: unset
Sie schlagen vor, nicht wiederherzustellen, z. B. die Standardeinstellungdisplay:block
für a<div>
oder die Standardeinstellungdisplay:table-row
für a<tr>
, es verwandelt effektiv alles indisplay:inline
(genau wiedisplay:initial
). Um den Browser-Standardwert für das Element wiederherzustellen, gibt es einendisplay:revert
, der jedoch nicht gut unterstützt wird ( caniuse.com/#feat=css-revert-value ).Sie können verwenden
Es funktioniert wie gewohnt .... Es ist ein kleines Hacken in CSS;)
quelle
display
Eigenschaft, wird also einfach ignoriert und funktioniert effektiv wie eineelement.style.display = ''
Zuweisung (siehe meine Antwort oben).display: chunk norris;
den gleichen Effekt mit etwas mehr Kick erzielen können..element { display: none }
(z. B. in der CSS-Bibliothek definiert),.element { display: normal !important }
funktioniert dies nicht. Sie müssen verwenden.element { display: unset !important }
Ich benutze
display:block;
es funktioniert bei mirquelle
block
Es ist nicht das, was Sie allgemein für eininline
Element wie<span>
beispielsweise möchten .Wie Paul erklärt, gibt es kein wörtliches Gegenteil von Anzeige: keine in HTML, da jedes Element eine andere Standardanzeige hat und Sie die Anzeige auch mit einer Klasse oder einem Inline-Stil usw. ändern können.
Wenn Sie jedoch so etwas wie jQuery verwenden, verhalten sich die Funktionen zum Ein- und Ausblenden so, als gäbe es ein Gegenteil von "Keine anzeigen". Wenn Sie ein Element ausblenden und dann wieder anzeigen, wird es genauso angezeigt wie vor dem Ausblenden. Dazu speichern sie den alten Wert der Anzeigeeigenschaft beim Ausblenden des Elements, sodass es beim erneuten Anzeigen genauso angezeigt wird wie vor dem Ausblenden. https://github.com/jquery/jquery/blob/740e190223d19a114d5373758127285d14d6b71e/src/css.js#L180
Dies bedeutet, dass, wenn Sie ein div beispielsweise so einstellen, dass es Inline oder Inline-Block anzeigt und Sie es ausblenden und dann erneut anzeigen, es erneut als Inline- oder Inline-Block angezeigt wird, wie es zuvor war
Skript:
Beachten Sie, dass die Anzeigeeigenschaft des div auch dann konstant bleibt, wenn es ausgeblendet (Anzeige: keine) und erneut angezeigt wurde.
quelle
Im Fall eines druckerfreundlichen Stylesheets verwende ich Folgendes:
Ich habe dies verwendet, als ich ein Formular mit Werten drucken musste und die Eingabefelder schwer zu drucken waren. Also habe ich die Werte in ein span.print_only-Tag eingefügt (div.print_only wurde an anderer Stelle verwendet) und dann die .no_print-Klasse auf die Eingabefelder angewendet. Auf dem Bildschirm sehen Sie also die Eingabefelder und beim Drucken nur die Werte. Wenn Sie Lust haben, können Sie JS verwenden, um die Werte in den Span-Tags zu aktualisieren, wenn die Felder aktualisiert wurden, aber das war in meinem Fall nicht erforderlich. Vielleicht nicht die eleganteste Lösung, aber es hat bei mir funktioniert!
quelle
Sie können display: block verwenden
Beispiel:
quelle
Ich bin auf diese Herausforderung gestoßen, als ich eine App erstellt habe, in der eine Tabelle für bestimmte Benutzer ausgeblendet werden soll, für andere jedoch nicht.
Anfangs habe ich es als Anzeige eingerichtet: keine, aber dann Anzeige: Inline-Block für die Benutzer, die ich sehen wollte, aber ich hatte die Formatierungsprobleme, die Sie möglicherweise erwarten (Spalten konsolidieren oder im Allgemeinen chaotisch).
Ich habe es umgangen, indem ich zuerst die Tabelle angezeigt und dann "display: none" für die Benutzer ausgeführt habe, die ich nicht sehen wollte. Auf diese Weise wurde es normal formatiert, verschwand jedoch nach Bedarf.
Eine Art laterale Lösung, könnte aber jemandem helfen!
quelle
Das Gegenteil von 'none' ist 'flex' während der Arbeit mit React Native.
quelle
Sichtbarkeit: versteckt versteckt das Element, aber das Element ist das mit DOM. Und im Falle einer Anzeige: keine, wird das Element aus dem DOM entfernt.
Sie haben also die Möglichkeit, das Element entweder ein- oder auszublenden. Aber sobald Sie es löschen (ich meine Anzeige keine), hat es keinen eindeutigen Gegenwert. Anzeige haben mehrere Werte wie Anzeige: Block, Anzeige: Inline, Anzeige: Inline-Block und viele andere. Sie können es von W3C aus überprüfen.
quelle
display
?Die beste Antwort für
display: none
istoder
quelle
display:normal
. Siehe developer.mozilla.org/en-US/docs/Web/CSS/displaySie können dies verwenden
display:block;
und auch hinzufügenoverflow:hidden;
quelle
display: block
funktioniert nicht gut auf einem<span>
oder einem<td>
... und eine vorherige Antwort hat bereits erwähntdisplay: block
.overflow: hidden
. Warum? Was bringt es, das hinzuzufügen? Es hat nichts damit zu tun, a rückgängig zu machendisplay: none
.Das beste "Gegenteil" wäre, es auf den Standardwert zurückzusetzen, der ist:
quelle