Heim Web-Frontend CSS-Tutorial CSS und BFC (Blockformatierungskontext)

CSS und BFC (Blockformatierungskontext)

Feb 17, 2017 pm 01:22 PM

Ich wusste vorher nicht, was BFC ist, nachdem ich es heute gelesen hatte, wurde mir klar, dass ich schon oft damit in Berührung gekommen war, aber ich kannte einfach nicht den professionellen Namen. Genau wie Schließungen und Vererbung wurden sie früher oft verwendet, aber ich wusste es einfach nicht. Heute werde ich über BFC der CSS-Positionierung sprechen.

BFC hängt mit dem Löschen von Floats zusammen. Lassen Sie uns also darüber sprechen, wie man Floats löscht. Es gibt zwei Hauptmethoden zum Löschen von Floats:

①Verwenden Sie das Clear-Attribut, um Floats zu löschen

②Machen Sie den übergeordneten Container zu einem BFC

Bevor ich über BCF spreche, möchte ich sagen, dass es drei Hauptpositionierungsschemata zur Steuerung des Layouts von Elementen gibt: Normaler Fluss und Floats und absolute Positionierung

***Normaler Fluss

Im normalen Fluss werden die Elemente von oben nach unten entsprechend ihrer sequentiellen Position in HTML angeordnet. Bei diesem Vorgang werden die Inline-Elemente horizontal angeordnet, bis die Zeile voll ist, und dann Die Zeilenumbrüche und die Elemente auf Blockebene werden als vollständige neue Zeile gerendert. Sofern nicht anders angegeben, werden alle Elemente standardmäßig im normalen Fluss positioniert wird durch seine Position im HTML-Dokument bestimmt.

***Floats

In einem Float-Layout erscheinen Elemente zuerst entsprechend der Position des normalen Flusses und werden dann je nach Richtung so weit wie möglich nach links oder rechts versetzt des Schwimmers.

***Absolute Positionierung

In einem absolut positionierten Layout wird das Element vom normalen Fluss als Ganzes getrennt, sodass das absolut positionierte Element seine Geschwisterelemente nicht beeinflusst (während es schwebend ist). Elemente wirken sich auf Geschwisterelemente aus), und die spezifische Position des Elements wird durch die Koordinaten der absoluten Positionierung bestimmt.

BFC gehört zum gewöhnlichen Stream und hat daher keine Auswirkungen auf die Geschwisterelemente.

&&--Definition von BFC--&&

Beim Layout von Box-Elementen stellt BFC eine Umgebung bereit, in der das Layout nach bestimmten Regeln keine Auswirkungen auf andere Umgebungen hat. Beispielsweise bilden schwebende Elemente einen BFC. Die Unterelemente innerhalb des schwebenden Elements werden hauptsächlich vom schwebenden Element beeinflusst, und die beiden schwebenden Elemente haben keinen Einfluss aufeinander. Mit anderen Worten: Wenn ein Element die Bedingungen erfüllt, um ein BFC zu werden, beeinflussen sich Layout und Positionierung der internen Elemente des Elements nicht gegenseitig (es sei denn, die interne Box erstellt einen neuen BFC) und es handelt sich um einen isolierten unabhängigen Container .

&&--Was genau ist BFC--&&

Wenn es um das visuelle Layout geht, bietet Block Formatting Context eine Umgebung, in der HTML-Elemente nach bestimmten Regeln angeordnet werden. Elemente in einer Umgebung haben keinen Einfluss auf das Layout anderer Umgebungen. Beispielsweise bilden schwebende Elemente einen BFC. Die Unterelemente innerhalb des schwebenden Elements werden hauptsächlich vom schwebenden Element beeinflusst, und die beiden schwebenden Elemente beeinflussen sich nicht gegenseitig. Dies ähnelt in gewisser Weise der Vorstellung, dass ein BFC eine unabhängige Verwaltungseinheit ist.

&&--So bilden Sie BFC--&&

①Der Wert von float ist nicht none.

②Der Wert des Überlaufs ist nicht sichtbar.

③Der Wert von display ist einer von table-cell, table-caption und inline-block.

④Der Wert der Position ist nicht relativ oder statisch.

⑤Flex-Boxen in CSS3

&&--Die Rolle von BFC--&&

①Enthält schwebende Elemente (klare Floats)

BFC wird darauf basieren Untergeordnete Elemente Passen Sie die Höhe an die Situation an. Mit dieser Funktion werden die Stile overflow:hidden/auto/scroll und float:left/right für das übergeordnete Element verwendet, um das schwebende Element

② zu schließen, das nicht vom schwebenden Element Das schwebende Element wird ignoriert. Das Vorhandensein von Geschwisterelementen deckt die Geschwisterelemente ab. Das Erstellen eines BFC für die Geschwisterelemente kann verhindern, dass diese Situation auftritt.

&&--BFC hat drei Hauptmerkmale-&&

①BFC verhindert, dass die Ränder zusammenfallen

Die vertikalen Ränder zweier verbundener ps überlappen sich. In der tatsächlichen Entwicklung benötigen wir diese Art der Faltung möglicherweise nicht. In diesem Fall können wir eine der Funktionen von BFC verwenden. Verhindern Sie, dass sich die Ränder überlappen. Verhindert das Zusammenfallen der Ränder von übergeordneten und untergeordneten Elementen. Nur wenn zwei Elemente auf Blockebene benachbart sind und sich im gleichen Formatierungskontext auf Blockebene befinden, überlappen sich die vertikalen Ränder zwischen ihnen. Das heißt, selbst wenn zwei Elemente auf Blockebene benachbart sind, werden ihre Ränder nicht reduziert, wenn sie sich nicht im selben Formatierungskontext auf Blockebene befinden. Gleichzeitig sind die Ränder des BFC-Elements nicht mit seinen untergeordneten Elementen ausgeblendet.

②BFC kann schwebende Elemente enthalten

Dies ist genau das Prinzip der Verwendung der Methoden „overflow:hidden“ und „overflow:auto“, um das obige Float zu schließen. Verwenden Sie „overflow:hidden“ oder „overflow:auto“, um die BFC-Funktion auszulösen übergeordnetes Element des Floating-Elements, sodass Sie Floating-Elemente enthalten und das Float schließen können.

Der Originaltext von W3C lautet „‚Auto‘-Höhen für Blockformatierungskontextwurzeln“, d. h. BFC passt sich automatisch an die Höhe entsprechend der Situation der untergeordneten Elemente an, auch wenn seine untergeordneten Elemente schwebende Elemente enthalten .

Aber IE6-7 unterstützt nicht den BFC von W3C, sondern verwendet sein eigenes hasLayout. In Bezug auf die Leistung ist es BFC sehr ähnlich, außer dass hasLayout selbst viele Probleme hat, was zu einer Reihe von Fehlern in IE6-7 führt. Die Bedingungen zum Auslösen von hasLayout ähneln in gewisser Weise denen zum Auslösen von BFC. Kayo wird einen Artikel schreiben, um die spezifische Situation vorzustellen. Hier empfiehlt Kayo, das IE-spezifische CSS-Attribut „Zoom: 1“ festzulegen, um das Zoomverhältnis des Elements festzulegen oder abzurufen. Ein Wert von „1“ bedeutet, dass „Zoom: 1“ verwendet wird kann hasLayout auslösen ohne Es hat andere Auswirkungen auf die Elemente, was relativ praktischer ist.

③BFC kann verhindern, dass Elemente durch schwebende Elemente abgedeckt werden.
Wie oben erwähnt, ignorieren die Blockgeschwisterelemente von schwebenden Elementen die Position von schwebenden Elementen und versuchen, die gesamte Zeile zu belegen, sodass sie es sind Durch Floating-Elemente abgedeckt, kann das Auslösen von BFC für dieses Geschwisterelement dies verhindern.

Weitere Artikel zum Thema CSS BFC (Block Formatting Context) finden Sie auf der chinesischen PHP-Website!

Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn

Heiße KI -Werkzeuge

Undresser.AI Undress

Undresser.AI Undress

KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover

AI Clothes Remover

Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool

Undress AI Tool

Ausziehbilder kostenlos

Clothoff.io

Clothoff.io

KI-Kleiderentferner

AI Hentai Generator

AI Hentai Generator

Erstellen Sie kostenlos Ai Hentai.

Heißer Artikel

R.E.P.O. Energiekristalle erklärten und was sie tun (gelber Kristall)
2 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Beste grafische Einstellungen
2 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. So reparieren Sie Audio, wenn Sie niemanden hören können
3 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌

Heiße Werkzeuge

Notepad++7.3.1

Notepad++7.3.1

Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version

SublimeText3 chinesische Version

Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1

Senden Sie Studio 13.0.1

Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6

Dreamweaver CS6

Visuelle Webentwicklungstools

SublimeText3 Mac-Version

SublimeText3 Mac-Version

Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

Entmystifizierende Bildschirmleser: Zugrunde Formen und Best Practices Entmystifizierende Bildschirmleser: Zugrunde Formen und Best Practices Mar 08, 2025 am 09:45 AM

Dies ist der 3. Beitrag in einer kleinen Serie, die wir in Form von Barrierefreiheit gemacht haben. Wenn Sie den zweiten Beitrag verpasst haben, lesen Sie "Verwalten des Benutzerfokus mit: Fokus-Sichtbar". In

Erstellen Sie ein JavaScript -Kontaktformular mit dem Smart Forms Framework Erstellen Sie ein JavaScript -Kontaktformular mit dem Smart Forms Framework Mar 07, 2025 am 11:33 AM

Dieses Tutorial zeigt, dass professionelle JavaScript-Formulare mithilfe des Frameworks Smart Forms erstellt werden (Hinweis: Nicht mehr verfügbar). Während der Rahmen selbst nicht verfügbar ist, bleiben die Prinzipien und Techniken für andere Formbauer relevant.

Hinzufügen von Kastenschatten zu WordPress -Blöcken und -Elementen Hinzufügen von Kastenschatten zu WordPress -Blöcken und -Elementen Mar 09, 2025 pm 12:53 PM

Die CSS-Box-Shadow- und Umrisseigenschaften haben Thema gewonnen. JSON-Unterstützung in WordPress 6.1. Sei ein paar Beispiele für die Funktionsweise in realen Themen und welche Optionen wir diese Stile auf WordPress -Blöcke und Elemente anwenden müssen.

Arbeiten mit GraphQL Caching Arbeiten mit GraphQL Caching Mar 19, 2025 am 09:36 AM

Wenn Sie kürzlich mit GraphQL gearbeitet oder seine Vor- und Nachteile überprüft haben, haben Sie zweifellos Dinge wie "GraphQL nicht unterstützen Caching" oder gehört

Machen Sie Ihren ersten Seltsamen -Sufle -Übergang Machen Sie Ihren ersten Seltsamen -Sufle -Übergang Mar 15, 2025 am 11:08 AM

Die Sufelte Transition -API bietet eine Möglichkeit, Komponenten zu beleben, wenn sie das Dokument eingeben oder verlassen, einschließlich benutzerdefinierter Svelte -Übergänge.

Edle und coole CSS -Scrollbars: Ein Schaufenster Edle und coole CSS -Scrollbars: Ein Schaufenster Mar 10, 2025 am 11:37 AM

In diesem Artikel werden wir in die Welt der Scrollbars eintauchen. Ich weiß, es klingt nicht zu glamourös, aber vertrau mir, eine gut gestaltete Seite geht Hand in Hand

Show, Don ' Tell Show, Don ' Tell Mar 16, 2025 am 11:49 AM

Wie viel Zeit damit, die Inhaltspräsentation für Ihre Websites zu entwerfen? Wenn Sie einen neuen Blog -Beitrag schreiben oder eine neue Seite erstellen, denken Sie darüber nach

Was zum Teufel haben NPM -Befehle? Was zum Teufel haben NPM -Befehle? Mar 15, 2025 am 11:36 AM

NPM-Befehle führen verschiedene Aufgaben für Sie aus, entweder als einmalige oder als kontinuierlich ausgeführter Vorgang für Dinge wie das Starten eines Servers oder das Kompilieren von Code.

See all articles