Warum benötigt der Internet Explorer das Flag "hasLayout"?

Wie bei vielen Entwicklern, die an Websites für Internet Explorer arbeiten, scheinen mir viele Fehler zu begegnen, die durch die berüchtigten Entwickler verursacht werdenhasLayout Flagge.

Ich verstehe, was diese Flagge macht und wie sie funktioniert (größtenteils). Eine gute Erklärung, die ich neulich gelesen habe (obwohl ich die Quelle nicht finden kann), ist die folgendehasLayout im IE bedeutet im Wesentlichen "Machen Sie dieses Element ein Rechteck."

Es ist offensichtlich komplizierter als das, aber es ist ziemlich gut damit zusammengefasst (meiner Meinung nach).

Was ich nicht verstehe, ist, warum der Browser diese Flagge verwendet. Als ich nach einer Antwort suchte, fand ich eine, die logisch klang:

Internet Explorer musste sich mit sehr altem Legacy-Code auseinandersetzen, bevor CSS wirklich in vollem Gange war. Als eine architektonische Entscheidung, um dem Browser das Hinzufügen von CSS zu erleichtern, wurde diehasLayout flag wurde verwendet, um bestimmte CSS-Eigenschaften auszulösen, damit die Seite korrekt dargestellt wird. Dies geht auf die Zeit des IE4 zurück.

Das machte für mich beinahe Sinn, bis mir klar wurde, dass Firefox (damals Netscape) sich mit dem gleichen Problem befassen musste. Netscape gibt es schon so lange wie der Internet Explorer, benötigt jedoch keine internenhasLayout Fahne oder ähnliches, soweit ich weiß.

Sehen als wie diehasLayout flag ist die Quelle für so viele Fehler im Internet Explorer. Weiß jemand, warum der IE dieses Flag hat und andere Browser es nicht benötigen?

Das möchte ich nur aus Neugier wissen, wenn jemand Theorien hat oder zufällig die Antwort weiß. Ich würde gerne mehr darüber erfahren, warum (oder warum nicht) diese Flagge nützlich ist.

Antworten auf die Frage(2)

Ihre Antwort auf die Frage