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

View in English Always switch to English

Logische Eigenschaften für Floaten und Positionierung

Das CSS-Modul für logische Eigenschaften und Werte enthält logische Zuordnungen für die physischen Werte von float und clear, sowie für die Positionierungseigenschaften, die mit positioniertem Layout verwendet werden. Dieser Leitfaden zeigt, wie Sie diese verwenden können.

Zuordnete Eigenschaften und Werte

Die folgende Tabelle beschreibt die in diesem Leitfaden besprochenen logischen Eigenschaften und Werte zusammen mit deren Zuordnungen zu physischen Eigenschaften und Werten. Sie gehen von einem horizontalen writing-mode mit einer von links nach rechts gerichteten Richtung aus.

Logische Eigenschaft oder Wert Physische Eigenschaft oder Wert
float: inline-start float: left
float: inline-end float: right
clear: inline-start clear: left
clear: inline-end clear: right
inset-inline-start left
inset-inline-end right
inset-block-start top
inset-block-end bottom
text-align: start text-align: left
text-align: end text-align: right

Neben diesen zugeordneten Eigenschaften gibt es einige zusätzliche Kurzform-Eigenschaften, die es ermöglichen, Block- und Inline-Dimensionen anzusprechen. Diese haben keine Zuordnung zu physikalischen Eigenschaften, abgesehen von der inset-Eigenschaft.

Logische Eigenschaft Zweck
inset-inline Setzt beide obigen Inset-Werte für die Inline-Dimension gleichzeitig.
inset-block Setzt beide obigen Inset-Werte für die Block-Dimension gleichzeitig.
inset Setzt alle vier Inset-Werte gleichzeitig mit physikalischer Zuordnung von Mehrwehrten.

Beispiel für Float und Clear

Die physischen Werte, die mit den Eigenschaften float und clear verwendet werden, sind left, right und both. Das CSS-Modul für logische Eigenschaften und Werte definiert die Werte inline-start und inline-end als Zuordnungen für left und right.

Im folgenden Beispiel wird das erste Kästchen mit float: left gefloatet, und das zweite mit float: inline-start. Wenn Sie direction: rtl auf den .inner-Selektor anwenden, bleibt das links gefloatete Kästchen immer auf der linken Seite, während das inline-start-gefloatete Element der direction des Textes folgt. Sie können dies mit writing-mode: vertical-rl kombinieren, um den Unterschied des Block-Layouts in Verbindung mit direction-Werten zu sehen.

html
<div class="container">
  <div class="inner">
    <div class="physical box"></div>
    Turnip greens yarrow ricebean rutabaga endive cauliflower sea lettuce
    kohlrabi amaranth water spinach avocado daikon napa cabbage asparagus winter
    purslane kale.
  </div>
  <div class="inner">
    <div class="logical box"></div>
    Turnip greens yarrow ricebean rutabaga endive cauliflower sea lettuce
    kohlrabi amaranth water spinach avocado daikon napa cabbage asparagus winter
    purslane kale.
  </div>
</div>
css
.inner {
  /* direction: rtl; */
  /* writing-mode: vertical-rl; */
}

.physical {
  float: left;
}

.logical {
  float: inline-start;
}

Beispiel: Inset-Eigenschaften für positioniertes Layout

Die CSS-Positionierung erlaubt es uns generell, ein Element in einer Weise relativ zu seinem enthaltenden Block zu positionieren – wir setzen das Element im Wesentlichen relativ zu seiner normalen Flussposition ein. Um ein Element relativ zum Viewport zu positionieren, verwenden Sie die physischen Eigenschaften top, right, bottom und left. Wenn Sie möchten, dass sich die Positionierung auf den Fluss des Textes in Ihrem Schreibmodus bezieht, verwenden Sie stattdessen inset-block-start, inset-block-end, inset-inline-start und inset-inline-end.

Diese Eigenschaften nehmen eine Länge oder einen Prozentsatz als Wert an und beziehen sich auf die Bildschirmdimensionen des Benutzers.

Im folgenden Beispiel werden die Eigenschaften inset-block-start und inset-inline-end verwendet, um das blaue Kästchen mit absoluter Positionierung innerhalb des Bereichs mit der grauen gestrichelten Umrandung zu positionieren, welche position: relative hat. Ändern Sie die writing-mode-Eigenschaft zu vertical-rl oder fügen Sie direction: rtl hinzu und sehen Sie, wie das der Flussrichtung zugeordnete Kästchen mit der Textausrichtung verbleibt.

html
<div class="container">
  <div class="inner">
    <div class="physical box"></div>
  </div>
  <div class="inner">
    <div class="logical box"></div>
  </div>
</div>
css
.inner {
  writing-mode: horizontal-tb;
}

.physical {
  position: absolute;
  top: 20px;
  right: 0;
}

.logical {
  position: absolute;
  inset-block-start: 20px;
  inset-inline-end: 0;
}

Neue Kurzformen für zwei und vier Werte

Wie bei anderen Eigenschaften im Modul haben wir Kurzform-Eigenschaften, die es ermöglichen, zwei oder vier Werte gleichzeitig zu setzen.

  • inset — setzt alle vier Seiten zusammen mit physikalischer Zuordnung.
  • inset-inline — setzt beide logischen Inline-Insets.
  • inset-block — setzt beide logischen Block-Insets.

Beispiel: Logische Werte für Textausrichtung

Die text-align-Eigenschaft hat logische Werte, die sich auf die Textausrichtung beziehen – anstelle von left und right können Sie start und end verwenden. Im folgenden Beispiel wird text-align: right im ersten Block und text-align: end im zweiten Block gesetzt.

Wenn Sie den Wert von direction auf rtl ändern, sehen Sie, dass die Ausrichtung beim ersten Block auf der rechten Seite bleibt, aber im zweiten Block zum logischen Ende auf die linke Seite geht.

html
<div class="container">
  <div class="inner physical">Aligned text</div>
  <div class="inner logical">Aligned text</div>
</div>
css
.inner {
  direction: ltr;
}

.physical {
  text-align: right;
}

.logical {
  text-align: end;
}

Dies funktioniert konsistenter, wenn Sie Box-Ausrichtung verwenden, die Start und Ende anstelle von physischen Richtungen für die Ausrichtung nutzt.