Heim > Web-Frontend > CSS-Tutorial > Analyse von Anwendungsbeispielen von BFC und IFC in CSS

Analyse von Anwendungsbeispielen von BFC und IFC in CSS

小云云
Freigeben: 2018-02-02 10:44:38
Original
1826 Leute haben es durchsucht

Ich habe schon einmal gehört, dass jemand BFC in CSS erwähnt hat, und während der IFE-Übung bin ich zufällig auf das Problem des Margin-Zusammenbruchs gestoßen, also habe ich zufällig den Mechanismus von BFC herausgefunden. (Siehe Referenz am Ende des Artikels als Referenzquelle)

Dieser Artikel stellt Ihnen hauptsächlich die relevanten Informationen zur Verwendung von BFC und IFC in CSS vor. Der Herausgeber findet es ziemlich gut, also werde ich es teilen Nehmen Sie es jetzt mit und geben Sie es als Referenz weiter. Folgen wir dem Herausgeber und schauen wir uns das an. Ich hoffe, es kann allen helfen.

1 Was ist BFC

Wie bei allen vorherigen Blogbeiträgen beginnen wir mit der Einführung aus der Perspektive von „Was“ und verstehen BFC von der Oberflächlichkeit zur Tiefe.

Der sogenannte Formatierungskontext ist ein Konzept in der W3C CSS2.1-Spezifikation.

Es handelt sich um einen Rendering-Bereich auf der Seite und verfügt über eine Reihe von Rendering-Regeln.

Es bestimmt, wie seine untergeordneten Elemente positioniert werden sowie deren Beziehung und Interaktion mit anderen Elementen.

Blockformatierungskontexte (BFC, Formatierungskontext auf Blockebene) sind die Rendering- und Anzeigeregeln eines Elements auf Blockebene. Laienhaft ausgedrückt kann BFC als eine große geschlossene Box verstanden werden. Die Unterelemente innerhalb des Containers haben keinen Einfluss auf die Elemente außerhalb und umgekehrt.

Die Layoutregeln von BFC lauten wie folgt:

1 Die internen Boxen werden einzeln in vertikaler Richtung platziert
2 BFC ist ein isolierter unabhängiger Container die Seite;
3 Die oberen und unteren Ränder zweier benachbarter Felder, die zum selben BFC gehören, überlappen sich
4 Bei der Berechnung der Höhe des BFC werden auch schwebende Elemente berücksichtigt
5 Die linke Seite Die linke Seite jedes Elements ist in Kontakt, auch wenn es einen Float gibt BFC? Die BFC-Funktion kann ausgelöst werden, solange das Element eine der folgenden Bedingungen erfüllt:

Körperstammelement
  1. Floating-Element: float Attribut, das nicht kein Wert ist;
  2. Absolut positioniertes Element: Position (absolut, fest)
  3. Anzeige ist: Inline-Block, Tabelle- Zellen, Flex
  4. Überlaufwerte außer sichtbar (versteckt, automatisch, scrollen)
  5. Die Eigenschaften und Anwendungen von BFC
Nächste Einführung Gemeinsame Funktionen und Anwendungen von BFC Bei der Erläuterung der Gründe in diesem Abschnitt werden die oben genannten Layoutregeln und Auslösebedingungen verwendet, daher müssen Sie darauf achten.

1 Die vertikalen Ränder zweier benachbarter Blockelemente im normalen Fluss werden zusammenbrechen

Die Darstellung ist:

<head>
.p {  
  width:200px;  
  height:50px;  
  margin:50px 0;  
  background-color:red;  
}  
</head>

<body>
   <p class="p"></p>  
   <p class="p"></p>  
</body>
Nach dem Login kopieren

Gemäß Artikel 3 der BFC-Regeln:

Der vertikale Abstand der Box wird durch den Rand bestimmt

Zugehörigkeit zum selben BFC + die oberen und unteren Ränder zweier benachbarter Boxen überlappen.

Der Grund, warum die Ränder im obigen Beispiel zusammenbrechen, liegt darin, dass sie beide zum Stammelement von body gehören. Wir müssen also dafür sorgen, dass sie nicht zum selben BFC gehören, um einen Randzusammenbruch zu vermeiden:

Das Rendering ist:
<p class="p"></p>  
<p class="wrap">  
  <p class="p"></p>  
</p>
Nach dem Login kopieren
.wrap {  
  overflow:hidden;  

.p {  
  width:200px;  
  height:50px;  
  margin:50px 0;  
  background-color:red;
Nach dem Login kopieren

2 BFC kann schwebende Elemente enthalten (klares Schweben)

Unter normalen Umständen werden schwebende Elemente so sein Vom normalen Dokumentenfluss getrennt, also im folgenden Code:

Das äußere p kann das interne schwebende p nicht enthalten. Der Effekt ist in der folgenden Abbildung dargestellt:

<p style="border: 1px solid #000;">
    <p style="width: 50px; height: 50px; background: #eee;
               float: left;">
    </p>
</p>
Nach dem Login kopieren

Aber wenn wir den BFC des externen Containers auslösen, gilt gemäß Artikel 4 der BFC-Spezifikation: Bei der Berechnung der Höhe des BFC beteiligt sich auch das schwebende Element an der Berechnung, dann das externe Der p-Container kann das schwebende Element umschließen. Ändern Sie daher einfach den Code wie folgt:

kann die folgenden Effekte erzielen:

<p style="border: 1px solid #000;overflow: hidden">
    <p style="width: 100px;height: 100px;background: #eee;float: left;"></p>
</p>
Nach dem Login kopieren

3 BFC kann verhindern Elemente werden nicht durch schwebende Elemente verdeckt

Schauen wir uns zunächst ein Beispiel an:

Das Rendering ist:

<p class="aside"></p>  
<p class="main"></p>  

p {  
  width:300px;  
}  
.aside {  
  width: 100px;  
  height: 150px;  
  float: left;  
  background: black;  
}  
.main {  
  height:200px;  
  background-color:red;  
}
Nach dem Login kopieren

Der Grund Warum dies der Fall ist, liegt an Regel 5 oben: Die linke Seite jedes Elements und enthält Die linke Seite der Box ist in Kontakt, auch wenn es Float gibt

Wenn Sie also das ändern möchten Um den Effekt komplementär und interferierend zu machen, müssen Sie Regel 6 verwenden: Der Bereich von BFC überschneidet sich nicht mit Float. Let

kann auch die Eigenschaften von BFC auslösen, das heißt:

Auf diese Weise kann ein adaptives Layout von zwei Spalten implementiert werden.

.main {  
  overflow:hidden;  
  height:200px;  
  background-color:red;  
}
Nach dem Login kopieren
3 Kurze Einführung in IFC

IFC-Layoutregeln:

1 Die Boxen werden horizontal nacheinander platziert, beginnend am oberen Rand des enthaltenden Blocks.

2 Beim Platzieren dieser Boxen wird der von ihren inneren und äußeren Rändern + Rändern in horizontaler Richtung eingenommene Platz berücksichtigt. In vertikaler Richtung können diese Boxen in verschiedenen Formen ausgerichtet werden: horizontaler Rand, Polsterung und Der Rand ist gültig, die Vertikale ist jedoch ungültig. Die Breite und Höhe können nicht angegeben werden;

3 Die Breite des Zeilenfelds wird durch den enthaltenden Block bestimmt und der vorhandene Float wird durch die Zeilenhöhe bestimmt.

Verwandte Empfehlungen:


Ausführliche Erklärung des wichtigen BFC in CSS

Über das Thema BFC und Höhenkollaps

Was ist BFC? Ein einfaches Verständnis von bfc

Das obige ist der detaillierte Inhalt vonAnalyse von Anwendungsbeispielen von BFC und IFC in CSS. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Verwandte Etiketten:
Quelle:php.cn
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
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage