1. Web
  2. CSS
  3. Reference
  4. Properties
  5. column-wrap

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

View in English Always switch to English

column-wrap CSS property

Experimentell: Dies ist eine experimentelle Technologie
Überprüfen Sie die Browser-Kompatibilitätstabelle sorgfältig vor der Verwendung auf produktiven Webseiten.

Die column-wrap CSS Eigenschaft legt das Umbruchverhalten für überlaufende Spalten in einem CSS-Mehrspalten-Layout fest.

Syntax

css
/* Keywords */
column-wrap: auto;
column-wrap: nowrap;
column-wrap: wrap;
/* Global values */
column-wrap: inherit;
column-wrap: initial;
column-wrap: revert;
column-wrap: revert-layer;
column-wrap: unset;

Werte

auto

Der Standardwert. Wenn die column-height des Inhaltscontainers auf eine <length> gesetzt wird, wird auto zu wrap, andernfalls wird es zu nowrap.

nowrap

Spalten überlaufen in der Inline-Richtung.

wrap

Überlaufende Spalten werden in einer neuen Zeile in Blockrichtung platziert.

Beschreibung

Die column-wrap Eigenschaft kann verwendet werden, um die Spalten eines CSS-Mehrspalten-Layouts auf eine neue Zeile umzubrechen, wenn sie die Spaltenbreite zu überlaufen beginnen. Dies ist nützlich, um besser lesbare Layouts zu erstellen, wenn die column-count oder column-width Eigenschaft verwendet wird, um mehrere Spalten festzulegen.

Ohne column-wrap werden überschüssige Spalten seitlich überlaufen und Leser müssen in der Inline-Richtung scrollen, um den gesamten Inhalt zu lesen. Die column-height Eigenschaft, zusammen mit column-wrap, ermöglicht es, eine spezifische Höhe für die Spalten festzulegen und sie auf eine neue Zeile von Spalten umzubrechen, wenn der Rand des Containers erreicht ist.

Der Standardwert von column-wrap ist auto, was zu wrap wird, wenn column-height auf einen <length>-Wert gesetzt ist; wrap ermöglicht, dass die fixierten Spaltenhöhen auf mehrere Zeilen verteilt werden. Wenn column-height gleich auto ist, wird column-wrap: auto zu nowrap, was es erlaubt, dass Spalten horizontal überlaufen, wenn eine feste Containerhöhe gesetzt ist.

Aufgrund dieses Standardverhaltens müssen Sie die column-wrap Eigenschaft im Allgemeinen nicht explizit festlegen.

Formale Definition

Anfangswert auto
Anwendbar aufmehrspaltige Elemente
Vererbt Nein
Berechneter Wert wie angegeben
Animationstyp diskret

Formale Syntax

column-wrap = 
auto |
nowrap |
wrap

Beispiele

Grundlegende Verwendung

Dieses Beispiel demonstriert die grundlegende Verwendung der column-wrap Eigenschaft, um ein umgebrochenes Mehrspalten-Layout durch Setzen einer column-height Eigenschaft zu erstellen.

HTML

Wir fügen ein Gedicht von Dr. Seuss ein, indem wir ein <ol> mit 28 <li>s verwenden, gefolgt vom Namen des Autors in einem <p>.

html
<ol>
 <li>One fish</li>
 <li>Two fish</li>
 <li>Red fish</li>
 <li>Blue fish</li>
 ...
</ol>
<p>-- Dr. Seuss</p>
<ol>
 <li>One fish</li>
 <li>Two fish</li>
 <li>Red fish</li>
 <li>Blue fish</li>
 <li>Black fish</li>
 <li>Blue fish</li>
 <li>Old fish</li>
 <li>New fish.</li>
 <li>This one has a little star.</li>
 <li>This one has a little car.</li>
 <li>Say! What a lot</li>
 <li>Of fish there are.</li>
 <li>Yes. Some are red. And some are blue.</li>
 <li>Some are old. And some are new.</li>
 <li>Some are sad.</li>
 <li>And some are glad.</li>
 <li>And some are very, very bad.</li>
 <li>Why are they</li>
 <li>Sad and glad and bad?</li>
 <li>I do not know.</li>
 <li>Go ask your dad.</li>
 <li>Some are thin.</li>
 <li>And some are fat.</li>
 <li>The fat one has</li>
 <li>A yellow hat.</li>
 <li>From there to here, from here to there,</li>
 <li>Funny things</li>
 <li>Are everywhere.</li>
</ol>
<p>--Dr. Seuss</p>

CSS

Wir definieren das <ol> als Mehrspalten-Container, indem wir die column-width Eigenschaft auf 150px setzen, was bedeutet, dass der Container so viele Spalten wie möglich enthalten wird, wobei jede mindestens 150px breit ist. Die gap-Eigenschaft setzt einen horizontalen Abstand zwischen den Spalten und einen vertikalen Abstand zwischen den Zeilen der Spalten. Wir setzen dann die column-height auf 3em, was dazu führt, dass der Standardwert auto der column-wrap Eigenschaft zu wrap wird, um umgebrochene Zeilen von Spalten zu erstellen.

css
ol {
 column-width: 150px;
 gap: 2em;
 column-height: 3em;
}

Ergebnis

Vergleich wrap und nowrap

Dieses Beispiel zeigt ein Mehrspalten-Layout, das den Unterschied zwischen den Werten wrap und nowrap demonstriert, indem Sie den column-wrap Wert des Spaltencontainers zwischen den beiden umschalten können. Das Ergebnis ist ein Layout, das dynamisch zwischen horizontalem und vertikalem Scrollen wechselt.

HTML und JavaScript

Das Markup für dieses Beispiel enthält mehrere Absätze mit Inhalten, entnommen von den HTML-, CSS- und JavaScript-Startseiten von MDN, und ein JavaScript-gesteuertes <input type="checkbox"> Element, um den column-wrap Eigenschaftswert des Containers zwischen nowrap und wrap umzuschalten. Das HTML und JavaScript wurde zur Übersichtlichkeit ausgeblendet.

<form>
 <label for="set-wrap"
 >Set <code>column-wrap</code> to <code>wrap</code></label
 >
 <input type="checkbox" id="set-wrap" />
</form>
<h1>HTML, CSS, and JavaScript summaries</h1>
<p>
 <strong>HTML</strong> (HyperText Markup Language) is the most basic building
 block of the Web. It defines the meaning and structure of web content. Other
 technologies besides HTML are generally used to describe a web page's
 appearance (CSS) or behavior (JavaScript).
</p>
<p>
 "Hypertext" refers to links that connect web pages to one another, either
 within a single website or between websites. Links are a fundamental aspect of
 the Web. By uploading content to the Internet and linking it to pages created
 by other people, you become an active participant in the World Wide Web.
</p>
<p>
 HTML uses "markup" to annotate text, images, and other content for display in
 a Web browser. HTML markup includes special "elements" such as
 <a href="/en-US/docs/Web/HTML/Reference/Elements/head"
 ><code>&lt;head&gt;</code></a
 >,
 <a href="/en-US/docs/Web/HTML/Reference/Elements/title"
 ><code>&lt;title&gt;</code></a
 >,
 <a href="/en-US/docs/Web/HTML/Reference/Elements/body"
 ><code>&lt;body&gt;</code></a
 >,
 <a href="/en-US/docs/Web/HTML/Reference/Elements/header"
 ><code>&lt;header&gt;</code></a
 >,
 <a href="/en-US/docs/Web/HTML/Reference/Elements/footer"
 ><code>&lt;footer&gt;</code></a
 >,
 <a href="/en-US/docs/Web/HTML/Reference/Elements/article"
 ><code>&lt;article&gt;</code></a
 >,
 <a href="/en-US/docs/Web/HTML/Reference/Elements/section"
 ><code>&lt;section&gt;</code></a
 >,
 <a href="/en-US/docs/Web/HTML/Reference/Elements/p"><code>&lt;p&gt;</code></a
 >,
 <a href="/en-US/docs/Web/HTML/Reference/Elements/div"
 ><code>&lt;div&gt;</code></a
 >,
 <a href="/en-US/docs/Web/HTML/Reference/Elements/span"
 ><code>&lt;span&gt;</code></a
 >,
 <a href="/en-US/docs/Web/HTML/Reference/Elements/img"
 ><code>&lt;img&gt;</code></a
 >,
 <a href="/en-US/docs/Web/HTML/Reference/Elements/aside"
 ><code>&lt;aside&gt;</code></a
 >,
 <a href="/en-US/docs/Web/HTML/Reference/Elements/audio"
 ><code>&lt;audio&gt;</code></a
 >,
 <a href="/en-US/docs/Web/HTML/Reference/Elements/canvas"
 ><code>&lt;canvas&gt;</code></a
 >,
 <a href="/en-US/docs/Web/HTML/Reference/Elements/datalist"
 ><code>&lt;datalist&gt;</code></a
 >,
 <a href="/en-US/docs/Web/HTML/Reference/Elements/details"
 ><code>&lt;details&gt;</code></a
 >,
 <a href="/en-US/docs/Web/HTML/Reference/Elements/embed"
 ><code>&lt;embed&gt;</code></a
 >,
 <a href="/en-US/docs/Web/HTML/Reference/Elements/nav"
 ><code>&lt;nav&gt;</code></a
 >,
 <a href="/en-US/docs/Web/HTML/Reference/Elements/search"
 ><code>&lt;search&gt;</code></a
 >,
 <a href="/en-US/docs/Web/HTML/Reference/Elements/output"
 ><code>&lt;output&gt;</code></a
 >,
 <a href="/en-US/docs/Web/HTML/Reference/Elements/progress"
 ><code>&lt;progress&gt;</code></a
 >,
 <a href="/en-US/docs/Web/HTML/Reference/Elements/video"
 ><code>&lt;video&gt;</code></a
 >,
 <a href="/en-US/docs/Web/HTML/Reference/Elements/ul"
 ><code>&lt;ul&gt;</code></a
 >,
 <a href="/en-US/docs/Web/HTML/Reference/Elements/ol"
 ><code>&lt;ol&gt;</code></a
 >,
 <a href="/en-US/docs/Web/HTML/Reference/Elements/li"
 ><code>&lt;li&gt;</code></a
 >
 and many others.
</p>
<p>
 An HTML element is set off from other text in a document by "tags", which
 consist of the element name surrounded by <code>&lt;</code> and
 <code>&gt;</code>. The name of an element inside a tag is case-insensitive.
 That is, it can be written in uppercase, lowercase, or a mixture. For example,
 the <code>&lt;title&gt;</code> tag can be written as
 <code>&lt;Title&gt;</code>, <code>&lt;TITLE&gt;</code>, or in any other way.
 However, the convention and recommended practice is to write tags in
 lowercase.
</p>
<hr />
<p>
 <strong>Cascading Style Sheets</strong> (<strong>CSS</strong>) is a
 <a href="/en-US/docs/Web/API/StyleSheet">stylesheet</a> language used to
 describe the presentation of a document written in
 <a href="/en-US/docs/Web/HTML">HTML</a> or
 <a href="/en-US/docs/Web/XML/Guides/XML_introduction">XML</a> (including XML
 dialects such as <a href="/en-US/docs/Web/SVG">SVG</a>,
 <a href="/en-US/docs/Web/MathML">MathML</a> or
 <a href="/en-US/docs/Glossary/XHTML">XHTML</a>). CSS describes how elements
 should be rendered on screen, on paper, in speech, or on other media.
</p>
<p>
 CSS is among the core languages of the <strong>open web</strong> and is
 standardized across web browsers according to
 <a href="https://www.w3.org/Style/CSS/#specs" class="external" target="_blank"
 >W3C specifications</a
 >. Previously, the development of various parts of CSS specification was done
 synchronously, which allowed the versioning of the latest recommendations. You
 might have heard about CSS1, CSS2.1, or even CSS3. There will never be a CSS3
 or a CSS4; rather, everything is now just "CSS" with individual CSS modules
 having version numbers.
</p>
<p>
 After CSS 2.1, the scope of the specification increased significantly and the
 progress on different CSS modules started to differ so much, that it became
 more effective to
 <a
 href="https://www.w3.org/Style/CSS/current-work"
 class="external"
 target="_blank"
 >develop and release recommendations separately per module</a
 >. Instead of versioning the CSS specification, W3C now periodically takes a
 snapshot of
 <a href="https://www.w3.org/TR/css/" class="external" target="_blank"
 >the latest stable state of the CSS specification</a
 >
 and individual modules progress. CSS modules now have version numbers, or
 levels, such as
 <a
 href="https://drafts.csswg.org/css-color-5/"
 class="external"
 target="_blank"
 >CSS Color Module Level 5</a
 >.
</p>
<hr />
<p>
 <strong>JavaScript</strong> (<strong>JS</strong>) is a lightweight interpreted
 (or
 <a href="/en-US/docs/Glossary/Just_In_Time_Compilation"
 >just-in-time compiled</a
 >) programming language with
 <a href="/en-US/docs/Glossary/First-class_Function">first-class functions</a>.
 While it is most well-known as the scripting language for Web pages,
 <a
 href="https://en.wikipedia.org/wiki/JavaScript#Other_usage"
 class="external"
 target="_blank"
 >many non-browser environments</a
 >
 also use it, such as <a href="/en-US/docs/Glossary/Node.js">Node.js</a>,
 <a href="https://couchdb.apache.org/" class="external" target="_blank"
 >Apache CouchDB</a
 >
 and
 <a
 href="https://opensource.adobe.com/dc-acrobat-sdk-docs/acrobatsdk/"
 class="external"
 target="_blank"
 >Adobe Acrobat</a
 >. JavaScript is a
 <a href="/en-US/docs/Glossary/Prototype-based_programming">prototype-based</a
 >, <a href="/en-US/docs/Glossary/Garbage_collection">garbage-collected</a>,
 <a href="/en-US/docs/Glossary/Dynamic_typing">dynamic</a> language, supporting
 multiple paradigms such as imperative, functional, and object-oriented.
</p>
<p>
 JavaScript's dynamic capabilities include runtime object construction,
 variable parameter lists, function variables, dynamic script creation (via
 <a href="/en-US/docs/Web/JavaScript/Reference/Global_Objects/eval"
 ><code>eval</code></a
 >), object introspection (via
 <a href="/en-US/docs/Web/JavaScript/Reference/Statements/for...in"
 ><code>for...in</code></a
 >
 and
 <a
 href="/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object#static_methods"
 ><code>Object</code> utilities</a
 >), and source-code recovery (JavaScript functions store their source text and
 can be retrieved through
 <a
 href="/en-US/docs/Web/JavaScript/Reference/Global_Objects/Function/toString"
 ><code>toString()</code></a
 >).
</p>
<p>
 This section is dedicated to the JavaScript language itself, and not the parts
 that are specific to Web pages or other host environments. For information
 about <a href="/en-US/docs/Glossary/API">APIs</a> that are specific to Web
 pages, please see <a href="/en-US/docs/Web/API">Web APIs</a> and
 <a href="/en-US/docs/Glossary/DOM">DOM</a>.
</p>
<p>
 The standards for JavaScript are the
 <a href="https://tc39.es/ecma262/" class="external" target="_blank"
 >ECMAScript Language Specification</a
 >
 (ECMA-262) and the
 <a href="https://tc39.es/ecma402/" class="external" target="_blank"
 >ECMAScript Internationalization API specification</a
 >
 (ECMA-402). As soon as one browser implements a feature, we try to document
 it. This means that cases where some
 <a href="https://github.com/tc39/proposals" class="external" target="_blank"
 >proposals for new ECMAScript features</a
 >
 have already been implemented in browsers, documentation and examples in MDN
 articles may use some of those new features. Most of the time, this happens
 between the
 <a href="https://tc39.es/process-document/" class="external" target="_blank"
 >stages</a
 >
 3 and 4, and is usually before the spec is officially published.
</p>
<p>
 Do not confuse JavaScript with the
 <a
 href="https://en.wikipedia.org/wiki/Java_(programming_language)"
 class="external"
 target="_blank"
 >Java programming language</a
 >
 — <strong>JavaScript is <em>not</em> "Interpreted Java"</strong>. Both "Java"
 and "JavaScript" are trademarks or registered trademarks of Oracle in the U.S.
 and other countries. However, the two programming languages have very
 different syntax, semantics, and use.
</p>
<p>
 JavaScript documentation of core language features (pure
 <a
 href="/en-US/docs/Web/JavaScript/Reference/JavaScript_technologies_overview"
 >ECMAScript</a
 >, for the most part) includes the following:
</p>
const checkbox = document.getElementById("set-wrap");
checkbox.addEventListener("change", () => {
 if (checkbox.checked) {
 document.body.style.columnWrap = "wrap";
 } else {
 document.body.style.columnWrap = "nowrap";
 }
});

CSS

Wir machen das <body>-Element zu einem Mehrspalten-Container, indem wir die column-count auf 3 setzen. Wir setzen dann einen gap von 3em 2em, was zu einem Abstand von 3em zwischen den Zeilen und einem Abstand von 2em zwischen den Spalten führt.

Wir setzen dann eine column-height von 90vh, wodurch die Spalten fast so hoch wie das Viewport werden. Wir setzen auch column-wrap auf nowrap, was dazu führt, dass überschüssige Inhaltsäulen horizontal überlaufen. Dies ist erforderlich, da der anfängliche column-wrap Wert auto ist, was zu wrap wird, wenn column-height auf einen <length>-Wert gesetzt ist.

Das Kontrollkästchen schaltet die column-wrap Eigenschaft zwischen nowrap und wrap um. Wenn wrap gesetzt ist, überlaufen die überschüssigen Inhaltsäulen vertikal in neue Zeilen von Spalten, wodurch das vertikale Layout entsteht. Der column-height Wert sorgt dafür, dass jede Zeile von Spalten den Viewport füllt.

css
body {
 column-count: 3;
 gap: 3em 2em;
 padding: 0 2em;
 column-height: 90vh;
 column-wrap: nowrap;
}

Als Nächstes setzen wir die column-span Eigenschaft des <h1> Elements auf all, um die Überschrift über alle Spalten zu spannen, und setzen die margin-top Eigenschaft des ersten <p> auf 0, sodass es mit dem oberen Rand der Spalten übereinstimmt.

css
h1 {
 column-span: all;
}
p:first-of-type {
 margin-top: 0;
}
* {
 box-sizing: border-box;
}
html {
 font-family: "Arial", sans-serif;
}
p {
 line-height: 1.5;
}
@supports not (column-wrap: wrap) {
 body::before {
 content: "Your browser does not support the 'column-wrap' property.";
 background-color: wheat;
 position: fixed;
 inset: 40% 0;
 height: fit-content;
 text-align: center;
 padding: 1rem 0;
 }
}
form {
 position: fixed;
 top: 0;
 right: 0;
 background-color: white;
 padding: 5px;
 border: 1px solid black;
}

Ergebnis

Schalten Sie das Kontrollkästchen um, um den Wert der column-wrap Eigenschaft zu ändern und das Layout zwischen horizontalem und vertikalem Scrollen zu wechseln. Wenn column-wrap auf nowrap gesetzt ist, überlaufen die Spalten horizontal; wenn column-wrap auf wrap gesetzt ist, werden neue Zeilen von Spalten vertikal hinzugefügt.

Spezifikationen

Spezifikation
CSS Multi-column Layout Module Level 2
# propdef-column-wrap

Browser-Kompatibilität

Siehe auch

Help improve MDN

Erfahren Sie, wie Sie beitragen können Diese Seite wurde automatisch aus dem Englischen übersetzt.

AltStyle によって変換されたページ (->オリジナル) /