CSS - Gegenteil von display:none
Ich versuche die Einrichtung von zwei einfachen css-Klassen zu wechseln Elemente :
.hide{
display:none;
}
.show{
display:inherit;
}
Scheint es zu funktionieren, aber manchmal-display:inherit; return Schwierigkeiten damit, die ist das genaue Gegenteil von display:none; ?
- das ist Display : Block;
- Alle anderen möglichen Werte von
display
werden gegenüberdisplay:none
wiedisplay:inline-block
,display:table
, ... - warum block wenn ich nicht wollen, um es zu spezifizieren? ich brauche einfach ein-und ausblenden, ohne die Setzung einer Regel 😛
- Sie können keine Annahmen über das, was display-Typ festgelegt wurde, bevor. es könnte habe
block
es könnte habeinline-block
es könnte habetable-cell
oder was auch immer. Es gibt eine "keine", aber es gibt viele "Gegensätze" könnte es gewesen sein. - Ich denke, dass CSS nicht mehr erinnern der Zustand der
display
bevor Sie es zunone
. So wird es keine CSS-Lösung dafür. - ich weiß nich ich tatsächlich versuchte, die beiden Erben und erste Sie beide funktioniert, aber ich weiß nicht, Unterschiede zwischen Ihnen, und wenn ist das eine gute Praxis
- display:initial ? weiß nicht ...
initial
ist normalerweise die default-Anzeige des Elements, wiediv
hatdisplay:block
standardmäßigspan
hatdisplay:inline
standardmäßig währendinherit
ist die Anzeige der Eltern. In der Tat, diese Art von Frage ist sehr verwirrend. In CSS wir haben nie irgendwelche Probleme im Zusammenhang mit diesem problem.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Dies hängt alles von dem element, das Sie angeben. Zum Beispiel
<div>
und<p>
Elemente sinddisplay:block;
standardmäßig in der Erwägung, dass<span>
istdisplay:inline;
standardmäßig.Akzeptierte Antwort hier enthält eine Liste der Standardwerte für jedes element auf der Grundlage welcher browser verwendet wird.
BEARBEITEN
Es erscheint, dass
display: initial;
wird in den meisten Browsern funktionieren, obwohl nicht IE. Eine fallback-Zeile CSS wäre wahrscheinlich die beste Praxis:display:initial
effektiv bedeutetdisplay:inline
, so 'display:block' kannst nicht ein fallback für es und den code nach dem "Bearbeiten" ist irgendwie irreführend. Es ist auchdisplay: revert
Wert (aus der CSS-Kaskade Stufe 4 spec), die effektiv kehrt diedisplay
Wert, um die browser-Voreinstellung für das element (block
fürdiv
,table-row
fürtr
usw.), aber die browser-Unterstützung ist sogar noch schlimmer als fürdisplay:initial
.Wenn Sie gerade mal Elemente, die Sie brauchen nicht zwei Klassen; Sie brauchen nur eine Klasse ("verstecken"), die Sie hinzufügen und entfernen für jedes element. Wenn Sie verstecken das element, fügen Sie die Klasse "hide", um es, und wenn Sie das element wieder, entfernen Sie die Klasse "hide".
Jedoch, wenn Sie wirklich brauchen, zwei Klassen, die ich hatte Erfolg mit so etwas wie dies:
Den blank-Wert weist den browser zu ignorieren, dass Eigentum, und es geht wieder zurück auf seinen Standardwert.
Es hängt davon ab, welche element die Sie zeigen möchten, für block Elemente:
Wenn Sie Javascript verwenden, das zu tun:
Und
Können schalten Sie die Anzeige für Sie.