[go: up one dir, main page]

Dieser Inhalt wurde automatisch aus dem Englischen übersetzt, und kann Fehler enthalten. Erfahre mehr über dieses Experiment.

View in English Always switch to English

Formen aus Box-Werten

Eine einfache Methode, eine Form zu erstellen, ist die Verwendung eines Werts aus dem CSS-Boxmodell Modul. Dieser Artikel erklärt, wie das funktioniert.

Die als Formwert zulässigen <box-edge> Box-Werte sind:

  • content-box
  • padding-box
  • border-box
  • margin-box

Die border-radius Werte werden ebenfalls unterstützt. Das bedeutet, dass Sie einem Element eine abgerundete Grenze geben können und Ihren Inhalt um die erstellte Form fließen lassen können.

CSS-Boxmodell

Die oben aufgeführten Werte entsprechen den verschiedenen Teilen des CSS-Boxmodells. Ein Kasten in CSS hat Inhalt, Polsterung, Rand und Abstand.

Das Boxmodell besteht aus den Margin-, Border-, Padding- und Content-Boxen.

Durch die Verwendung von Box-Werten für Formen können wir unseren Inhalt um die durch diese Werte definierten Kanten wickeln. In jedem der untenstehenden Beispiele benutze ich ein Element, das Polsterung, einen Rand und einen Abstand definiert hat, damit Sie die verschiedenen Möglichkeiten sehen können, wie sich der Inhalt bewegt.

margin-box

Die margin-box ist die Form, die durch den äußeren Margenrand definiert wird und den Eckradius der Form einschließt, sollte border-radius bei der Definition des Elements verwendet worden sein.

Im Beispiel unten haben wir ein kreisförmiges lila Element, das ein <div> mit einer Höhe, Breite und Hintergrundfarbe ist. Die border-radius Eigenschaft wurde verwendet, um einen Kreis zu erstellen, indem border-radius: 50% gesetzt wurde. Da das Element einen Abstand hat, können Sie sehen, dass der Inhalt um die kreisförmige Form und den darauf angewandten Abstand herumfließt.

html
<div class="box">
  <div class="shape"></div>
  <p>
    One November night in the year 1782, so the story runs, two brothers sat
    over their winter fire in the little French town of Annonay, watching the
    grey smoke-wreaths from the hearth curl up the wide chimney. Their names
    were Stephen and Joseph Montgolfier, they were papermakers by trade, and
    were noted as possessing thoughtful minds and a deep interest in all
    scientific knowledge and new discovery.
  </p>
</div>
css
body {
  font: 1.2em sans-serif;
}

.shape {
  background-color: rebeccapurple;
  height: 80px;
  width: 80px;
  padding: 20px;
  margin: 20px;
  border: 10px solid black;
  border-radius: 50%;
  float: left;
  shape-outside: margin-box;
}

border-box

Der border-box Wert ist die Form, die durch den äußeren Rändernrand definiert wird. Diese Form folgt allen normalen Gestaltungsregeln für die äußere Ränderform. Sie haben immer einen Rand, auch wenn Sie nicht die CSS-border Eigenschaft verwendet haben. In diesem Fall wird es dasselbe sein wie padding-box, die Form, die durch den äußeren Polsterrand definiert wird.

Im Beispiel unten können Sie sehen, wie der Text jetzt der durch den Rand erstellten Linie folgt. Ändern Sie die Randgröße, und der Inhalt wird ihr folgen.

css
body {
  font: 1.2em sans-serif;
}
.box {
  width: 70%;
}

.shape {
  background-color: rebeccapurple;
  height: 80px;
  width: 80px;
  padding: 20px;
  margin: 20px;
  border: 10px solid black;
  border-radius: 50%;
  float: left;
  shape-outside: border-box;
}

padding-box

Der padding-box Wert definiert die Form, die durch den äußeren Polsterrand eingeschlossen wird. Diese Form folgt allen normalen Gestaltungsregeln für den inneren Rändernrand. Wenn Sie keine Polsterung haben, ist padding-box dasselbe wie content-box.

css
body {
  font: 1.2em / 1.2 sans-serif;
}
.box {
  width: 70%;
}

.shape {
  background-color: rebeccapurple;
  height: 80px;
  width: 80px;
  padding: 20px;
  margin: 20px;
  border: 10px solid black;
  border-radius: 50%;
  float: left;
  shape-outside: padding-box;
}

content-box

Der content-box Wert definiert die Form, die durch den äußeren Inhaltsrand eingeschlossen wird. Jeder Eckradius dieser Box ist der border-radius minus der border-width und padding, oder 0, je nachdem, welcher größer ist. Das bedeutet, dass es hier unmöglich ist, einen negativen Wert zu haben.

css
body {
  font: 1.2em / 1.2 sans-serif;
}
.box {
  width: 70%;
}

.shape {
  background-color: rebeccapurple;
  height: 80px;
  width: 80px;
  padding: 20px;
  margin: 20px;
  border: 10px solid black;
  border-radius: 50%;
  float: left;
  shape-outside: content-box;
}

Wann man Box-Werte verwenden sollte

Die Verwendung von Box-Werten ist eine Möglichkeit, Formen zu erstellen; das funktioniert natürlich nur mit sehr grundlegenden Formen, die mit der border-radius Eigenschaft definiert werden können. Die oben gezeigten Beispiele zeigen einen solchen Anwendungsfall. Sie können eine kreisförmige Form mit border-radius erstellen und dann den Text um sie herum krümmen.

Mit dieser einfachen Technik können Sie einige interessante Effekte erzielen. In meinem letzten Beispiel dieses Abschnitts habe ich zwei Elemente links und rechts schweben gelassen und jedem einen Border-Radius von 100% in Richtung des Textes gegeben.

html
<div class="box">
  <div class="shape-left"></div>
  <div class="shape-right"></div>
  <p>
    One November night in the year 1782, so the story runs, two brothers sat
    over their winter fire in the little French town of Annonay, watching the
    grey smoke-wreaths from the hearth curl up the wide chimney. Their names
    were Stephen and Joseph Montgolfier, they were papermakers by trade, and
    were noted as possessing thoughtful minds and a deep interest in all
    scientific knowledge and new discovery.
  </p>
</div>
css
body {
  font: 1.2em / 1.5 sans-serif;
}

.box {
  text-align: justify;
}

.shape-left,
.shape-right {
  height: 100px;
  width: 100px;
}

.shape-left {
  margin: 0 20px 20px 0;
  border-bottom-right-radius: 100%;
  float: left;
  shape-outside: margin-box;
}
.shape-right {
  margin: 0 20px 20px;
  border-bottom-left-radius: 100%;
  float: right;
  shape-outside: margin-box;
}

Für komplexere Formen müssen Sie einen der Grundformen als Wert verwenden oder Ihre Form aus einem Bild definieren, wie es in anderen Leitfäden in diesem Abschnitt behandelt wird.