1: float ist eine spezielle Layoutfunktion, die bewirkt, dass das angegebene Element aus dem normalen Dokumentenfluss ausbricht. Es muss auf Elemente auf Blockebene angewendet werden, was bedeutet, dass Floats nicht auf Inline-Tags angewendet werden. Wenn Float angewendet wird, wird dieses Element als Element auf Blockebene bezeichnet. Nachdem beispielsweise ein Inline-Element auf Float gesetzt wurde, können Sie dessen Breite und Höhe festlegen.
.clear:after{ content:" "; display:block; height:0; clear:both; visibility:hidden; }
: Das After-Pseudoelement fügt Inhalt nach dem Element hinzu. Dieses Pseudoelement ermöglicht es Erstellern, generierte Inhalte am Ende des Elementinhalts einzufügen. Standardmäßig ist dieses Pseudoelement ein Inline-Element, dies kann jedoch mithilfe des Anzeigeattributs geändert werden. Der durch die Verwendung von after generierte Inhalt ist zunächst ein Leerzeichen und setzt dann die Höhe auf 0, um zu verhindern, dass er sich auf das Layout auswirkt. Dies bedeutet, dass es sich nicht auf das Layout auswirkt. klar: Beides bedeutet, dass die Browser ie6 und ie7 nicht unterstützt werden. Fügen Sie einfach eine Höhe hinzu: 1% und es ist in Ordnung. In diesem Fall haben ie6 und ie7 ein Haslayout.
2:haslayput
Tatsächlich ist haslayout eine interne Komponente der Rendering-Engine von Windows Internet Explorer 7 oder niedriger,
In Internet Explorer 7 und niedriger berechnet ein Element entweder die Größe und organisiert seinen eigenen Inhalt oder verlässt sich auf das übergeordnete Element, um die Größe zu berechnen und den Inhalt zu organisieren. Um diese beiden unterschiedlichen Konzepte in Einklang zu bringen, verwendet die Rendering-Engine das hasLayout-Attribut, das wahr oder falsch sein kann. Wenn der hasLayout-Attributwert eines Elements wahr ist, sagen wir, dass das Element ein Layout hat. Wenn ein Element über ein Layout verfügt, ist es für die Größe und Positionierung seiner selbst und möglicher untergeordneter Elemente verantwortlich. Einfach ausgedrückt, anstatt sich bei der Erledigung der Aufgabe auf Vorfahrenelemente zu verlassen. IE kann über die IE Developer Toolbar angezeigt werden Unabhängig davon, ob das HTML-Element haslayout hat, wird das Element mit haslayout normalerweise als „haslayout = -1“ angezeigt.
Das Layout besteht darin, die Größe von sich selbst und möglichen Nachkommenelementen zu berechnen und zu positionieren, um die Höhe des übergeordneten Elements zu bestimmen. Diesmal passt sich das übergeordnete Element an die Höhe des darin enthaltenen Inhalts an wird verstehen, warum eine Höhe hinzugefügt wird: 1% Grund Natürlich können Sie auch andere Attribute hinzufügen, um ein Layout zu erhalten, z. B. Breite usw. Natürlich können Sie Float hinzufügen (Float kann auch ein Layout auslösen), es wird jedoch nicht empfohlen, Float zum Löschen von Float zu verwenden, da Float einen weiteren Float generiert.
,, Die folgenden CSS-Eigenschaften und -Werte geben einem Element ein Layout: Position: absolut float: left|right display: inline-block Breite: beliebiger Wert außer „auto“ Höhe: jeder Wert außer „auto“ Zoom: jeder Wert außer „normal“. writing-mode: tb-rl Überlauf: versteckt|scroll|auto overflow-x|-y: versteckt|scroll|auto Darüber hinaus wurden dem IE7-Bildschirm mehrere neue Haslayout-Akteure hinzugefügt. Wenn wir nur hasLayout berücksichtigen, verhalten sich Min/Max und Breite/Höhe ähnlich und die Position ist genau festgelegt das Gleiche wie absolut. Position: fest Mindestbreite: beliebiger Wert max-width: jeder Wert außer „none“ min-height: jeder Wert max-height: jeder Wert außer „none“ Für Inline-Elemente (können standardmäßig inline sein, z. B. Span-Elemente oder Elemente mit Anzeige: inline) width und height lösen hasLayout nur in Macken aus Modus von IE5.x und IE6 oder neuer. Wenn der Browser für IE6 im Standardkompatibilitätsmodus ausgeführt wird, ignorieren Inline-Elemente die Breiten- oder Höhenattribute, daher kann das Festlegen von Breite oder Höhe in diesem Fall nicht anordnen, dass das Element ein Layout hat. Zoom kann immer hasLayout auslösen, wird aber in IE5.0 nicht unterstützt. Wenn ein Element mit „Layout“ auch Folgendes anzeigt: inline, ist sein Verhalten dem im Standard erwähnten Inline-Block sehr ähnlich: Es ist dasselbe wie gewöhnlicher Text in einem Absatz horizontal und kontinuierlich, beeinflusst durch vertikal-align, und die Größe kann je nach Inhalt adaptiv angepasst werden. Dies kann auch erklären, warum Inline-Elemente in IE/Win allein mit weniger Problemen Elemente auf Blockebene enthalten können, da display: inline in anderen Browsern Inline bedeutet, im Gegensatz zu IE/Win, sobald das Inline-Element ein Layout hat, hat es es immer noch ein Layout. Wird zum Inline-Block. Durch das Zurücksetzen der folgenden Eigenschaften auf ihre Standardwerte in einer anderen Regel wird hasLayout zurückgesetzt (oder rückgängig gemacht), wenn keine anderen Eigenschaften zu hasLayout hinzugefügt werden: Breite, Höhe (auf „Auto“ gesetzt) maximale Breite, maximale Höhe (auf „keine“) (in IE 7) Position (auf „statisch“ gesetzt) Float (auf „keine“ gesetzt) Überlauf (auf „sichtbar“ gesetzt) (in IE 7) Zoom (auf „normal“ gesetzt) Schreibmodus (von „tb-rl“ auf „lr-t“ eingestellt) Unterschied im Anzeigeattribut: bei Verwendung von „inline-block“ Wenn haslayout = true gesetzt ist, wird das haslayout-Flag nicht auf false zurückgesetzt, auch wenn dieses Attribut in einer separaten Regel auf „block“ oder „inline“ überschrieben wird. Wenn Sie die Höhe auf den Standardwert „0“ setzen, erhalten Sie immer noch hasLayout, aber IE 7 kann ein unzulässiges Attribut „auto“ akzeptieren, um hasLayout zurückzusetzen. Das obige ist der detaillierte Inhalt vonCSS Float Clear Float Haslayout. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!
,
Der enthaltende Block des absolut positionierten -Elements hat diesbezüglich häufig Probleme.
Aufgrund der Eigenschaften des Layoutelements weist das Floating-Modell viele seltsame Verhaltensweisen auf.
Wird häufig verwendet, wenn ein Element auf Inline-Ebene ein Layout erfordert. Dies ist möglicherweise auch die einzige Auswirkung dieser CSS-Eigenschaft – let Ein Element hat ein Layout. „Inline-Block-Verhalten“ ist im IE möglich, aber es ist sehr unterschiedlich: IE/Win: inline-block und hasLayout.
Wenn viele Leute auf Probleme mit dem Layout stoßen, versuchen sie normalerweise zuerst, diese damit zu beheben.
Höhe: 1 % Wird in Holly Hack verwendet.
IE-spezifische Eigenschaft. Zoom: 1 kann jedoch vorübergehend zum Debuggen verwendet werden.
MS-spezifische Eigenschaft.
In IE7 ist Überlauf auch zu einem Layout-Trigger geworden. Dieses Attribut hatte in früheren Versionen von IE nicht die Funktion, das Layout auszulösen.
overflow-x und overflow-y sind Eigenschaften im CSS3-Boxmodell, die von Browsern noch nicht allgemein unterstützt werden. In früheren IE-Versionen war es nicht möglich, das Layout auszulösen.
auch wenn es auf 0 gesetzt ist, kann das Element ein Layout erhalten.
Gerade Wenn es auf 0 gesetzt ist, können Sie haslayout=true des Elements machenAbout Inline-Ebenenelemente
hasLayout zurücksetzen