Wie funktioniert die CSS-Formatierung des Blocks Kontext arbeiten?

Wie funktioniert das CSS Block Formatting Context Arbeit?

CSS2.1 Spezifikationen sagt, dass in einer block-Formatierungs-Kontext-Boxen werden vertikal angeordnet, beginnend an der Spitze. Dies geschieht, selbst wenn es gefloateten Elemente in der Art und Weise, außer wenn der block-box hat eine neue block-Formatierungs-Kontext. Wie wir wissen, als die Browser-render-block-Boxen in einem block formatting context, der Schwebekörper wird weggelassen, warum die Gründung einer neuen block formatting context arbeiten?

Wie sind die Boxen (block-Boxen und inline-Boxen) festgelegt, die in den normalen Ablauf?

Ich habe irgendwo gelesen, dass block-Elemente erzeugen block-Boxen, aber floating elements werden ignoriert, wenn ein user-agent zieht die box und nehmen Sie in Konto, wenn Sie füllen content. Während die schwebenden Elemente überlappen andere Elemente, die Grenze der Felder, die Lösung ist die Gründung einer neuen block formatting context für die überlappenden Elemente mit overflow:hidden.

"Neuen block formatting context ist immer noch block-Formatierung", also beim zeichnen einer box, es wird auch von der "floating Elements" als wenn es nicht beenden. Ist das richtig oder habe ich das falsch verstanden "neuen block formatting context?"

Update:mehr Fragen

Indem Sie sagen: "Es ist dieses Verhalten sinnvoll, für säulenförmig Stil layouts. Der Hauptzweck es ist jedoch zu stoppen, schwebt, in einem "main content" div, eigentlich Lichtung schwebte side-Spalten, d.h. Schwimmer, die erscheinen weiter oben in den Quelltext".

Ich verstehe nicht den Sinn, werde ich ein Beispiel geben, vielleicht werden Sie mich verstehen.

CSS:

.content {
  background: #eee;
  color #000;
  border: 3px solid #444;
  width: 500px;
  height: 200px;
}
.float {
  background: rgba(0, 0, 255, 0.5);
  border: 1px solid #00f;
  width: 150px;
  height: 150px;
  float: right;
}
p {
  background: #444;
  color: #fff;
}

HTML:

<div class="content">
  <h3>This is a content box</h3>
  <p>It contains a left floated box, you can see the actual content div does go under the float, but that it is the &lt;h3&gt; and &lt;p&gt; <b>line boxes</b> that are shortened to make room for the float. This is normal behaviour.</p>
  <div class="float">floated box</div>
</div>

Ich dachte, die schwimmende box sollten Schwimmer an die Spitze des mit block-das div mit der Klasse content. Außerdem, wenn die floating-box erscheint früher im markup, dann erscheint auf dem display, was ich denke, sollte es sein.

CSS:

.content {
  background: #eee;
  color #000;
  border: 3px solid #444;
  width: 500px;
  height: 200px;
}
.float {
  background: rgba(0, 0, 255, 0.5);
  border: 1px solid #00f;
  width: 150px;
  height: 150px;
  float: right;
}
p {
  background: #444;
  color: #fff;
}

HTML:

<div class="content">
  <div class="float">floated box</div>
  <h3>This is a content box</h3>
  <p>it contains a left floated box, you can see the actual content div does go under the float, but that it is the &lt;h3&gt; and &lt;p&gt; <b>line boxes</b> that are shortened to make room for the float, this is normal behaviour</p>
</div>

Wie können wir das erklären? Können wir benutzen "block formatting context und inline formatting context", um es zu erklären?

  • Könnten Sie ein Bild hinzufügen, um zu dokumentieren, was Sie nicht verstehen?
  • Ich weiß, dass Sie nicht explizit gefragt schwimmt, aber ich denke, diesem Artikel ist wirklich gut im erklären, wie der Ablauf einer web-Seite funktioniert, und es kann Ihnen helfen, das zu verstehen.
InformationsquelleAutor eileen Tao | 2011-06-01
Schreibe einen Kommentar