Was ist der Unterschied zwischen den Eigenschaften "Anzeige" und "Sichtbarkeit"?
Was ist der Unterschied zwischen den Eigenschaften "Anzeige" und "Sichtbarkeit"?
Antworten:
Die visibilityEigenschaft teilt dem Browser nur mit, ob ein Element angezeigt werden soll oder nicht. Es ist entweder sichtbar ( visible- Sie können es sehen) oder unsichtbar ( hidden- Sie können es nicht sehen).
Die displayEigenschaft teilt dem Browser mit, wie ein Element gezeichnet und angezeigt werden soll, wenn überhaupt - ob es als inlineElement (dh es fließt mit Text und anderen Inline-Elementen) oder als blockElement auf Ebene (dh es hat Höhen- und Breiteneigenschaften ) angezeigt werden soll Sie können einstellen, es ist schwimmfähig, usw.) oder ein inline-block(dh , es wie ein Block - Box fungiert , sondern inline statt gelegt) und einige andere ( list-item, table, table-row, table-cell, flex, etc.).
Wenn Sie ein Element auf setzen , display: blockaber auch festlegen visibility: hidden, behandelt der Browser es weiterhin als Blockelement, außer Sie sehen es einfach nicht. So ähnlich wie Sie eine rote Box auf eine unsichtbare Box stapeln: Die rote Box sieht aus, als würde sie in der Luft schweben, wenn sie in Wirklichkeit auf einer physischen Box sitzt, die Sie nicht sehen können.
Mit anderen Worten bedeutet dies, dass Elemente, bei displaydenen dies nicht der Fall ist, noneden Fluss von Elementen auf einer Seite weiterhin beeinflussen, unabhängig davon, ob sie sichtbar sind oder nicht. Felder, die ein Element mit umgeben display: none, verhalten sich so, als wäre dieses Element nie vorhanden (obwohl es im DOM verbleibt).
display: none;, wird dieses Element aus dem DOM entfernt? oder bin ich total verwirrt
Sichtbarkeit: versteckt;
Anzeige: keine;
zusätzliche Hinweise:
Anzeige: keine; entfernt den visuellen Stil / physischen Raum der DOM-Elemente aus dem DOM, während die Sichtbarkeit: ausgeblendet ist; entfernt das Element nicht, sondern versteckt es einfach. Ein Div, das 300 Pixel vertikalen Platz in Ihrem DOM einnimmt, belegt NOCH 300 Pixel vertikale Breite, wenn es auf Sichtbarkeit eingestellt ist: versteckt; aber wenn eingestellt, um anzuzeigen: keine; seine visuellen Stile und der Raum, den es einnimmt, sind verborgen und der Raum wird dann "frei", weil kein besseres Wort vorhanden ist.
[BEARBEITEN] - Es ist eine Weile her, dass ich das Obige geschrieben habe, und ob ich nicht gut genug informiert war oder einen schlechten Tag hatte, weiß ich nicht, aber die Realität ist, dass das Element NIE aus der DOM-Hierarchie entfernt wird. Alle Anzeigestile auf Blockebene sind bei Verwendung von Anzeige vollständig "ausgeblendet": keine, während bei Sichtbarkeit: ausgeblendet; Das Element selbst ist ausgeblendet, nimmt jedoch einen visuellen Raum im DOM ein. Ich hoffe das klärt die Dinge auf
display: nonewird nicht aus dem DOM entfernt. Das Element ist noch vorhanden, es wird nur nicht angezeigt .