Heim >Web-Frontend >CSS-Tutorial >Wie kann ich die Neugestaltung von WebKit erzwingen, um die Stilweitergabe an abgeleitete Elemente sicherzustellen?
WebKit-Repainting zur Stilweitergabe erzwingen
Beim Implementieren von JavaScript-Stiländerungen können Webentwickler auf Inkonsistenzen zwischen Browsern stoßen. In WebKit-basierten Browsern wie Chrome und Safari können einfache Aktualisierungen des Klassennamens eines Elements möglicherweise nicht an die Nachkommen weitergegeben werden.
Dieses Problem tritt bei der Aktualisierung von Geschwistern auf, wobei das erste Geschwister den neuen Stil erhält, das zweite jedoch unberührt bleibt . Das Vorhandensein eines Fokus und eines Ankertags innerhalb des betroffenen Elements verkompliziert die Situation zusätzlich.
Problemumgehung: Auslösen des Neuzeichnens mit Anzeigeumschaltung
Um dieses Problem in WebKit zu beheben, a Eine einfache und effektive Lösung besteht darin, die Anzeigeeigenschaft des betroffenen Elements umzuschalten:
sel.style.display = 'none'; sel.offsetHeight; // Accessing offsetHeight forces a reflow sel.style.display = '';
Dies löst ein Neuzeichnen oder Neuzeichnen aus -Vorgang, der die Stiländerungen an alle Nachkommen weitergibt. Es ist erwähnenswert, dass bestätigt wurde, dass diese Technik für Elemente auf Blockebene funktioniert, und ihre Wirksamkeit für andere Anzeigetypen möglicherweise weiterer Untersuchungen bedarf.
Das obige ist der detaillierte Inhalt vonWie kann ich die Neugestaltung von WebKit erzwingen, um die Stilweitergabe an abgeleitete Elemente sicherzustellen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!