Co to jest DOM reflow?
Czytałem o różnicy między dwoma właściwościami css display:none
i visibility:hidden
i napotkałem Dom reflow term.
Wypowiedź była
Więc moje pytanie brzmi:
display: none
powoduje, że DOM reflow gdzie jestvisibility: hidden
NIE.
Co to jest DOM reflow i jak to działa?
3 answers
A reflow oblicza układ strony. Przepływ na elemencie rekomplikuje wymiary i położenie elementu, a także uruchamia dalsze przepływy na dzieciach tego elementu, przodkach i elementach, które pojawiają się po nim w DOM. Potem nazywa się ostateczne przemalowanie. Ponowne napełnianie jest bardzo kosztowne, ale niestety można je łatwo uruchomić.
Reflow występuje, gdy:
- Wstaw, Usuń lub zaktualizuj element w DOM
- modyfikuj zawartość strony, np. tekst w polu wprowadzania
- przenieś element DOM
- Animacja elementu DOM
- wykonaj pomiary elementów takich jak offsetHeight lub getComputedStyle
- Zmień styl CSS
- Zmień nazwę klasy elementu
- Dodaj lub usuń arkusz stylów
- zmiana rozmiaru okna
- scroll
Aby uzyskać więcej informacji, zobacz tutaj: Repaints and Reflows: manipulowanie DOM odpowiedzialnie
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2017-08-07 06:42:16
Reflow to nazwa procesu przeglądarki internetowej do ponownego obliczenia pozycji i geometrii elementów w dokumencie, w celu ponownego renderowania części lub całości dokumentu.
Https://developers.google.com/speed/articles/reflow
display:none
Ukryj div
tak, jakby {[1] } nie był renderowany, podczas gdy visibility:hidden
tylko się ukrywa, ale przestrzeń jest nadal zajęta
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2014-12-24 12:51:33
Oznacza to, że jeśli ustawisz wartość dinamically display: none;
, twoja przeglądarka przeliczy pozycje elementów DOM, jeśli visisbility: hidden; - not. Think, it ponieważ visibility: hidden;
nie zmienia rozmiarów elementów w dom.
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2014-12-24 12:51:35