column-rule-break CSS property
Eingeschränkt verfügbar
Diese Funktion ist nicht Baseline, da sie in einigen der am weitesten verbreiteten Browser nicht funktioniert.
Want more browser support for this feature? Tell us why.
Experimentell: Dies ist eine experimentelle Technologie
Überprüfen Sie die Browser-Kompatibilitätstabelle sorgfältig vor der Verwendung auf produktiven Webseiten.
Die column-rule-break CSS Eigenschaft legt das Verhalten für das Aufteilen von Spaltenlinien in Segmente fest, wo immer Spaltenlinien Zeilenlücken schneiden.
Probieren Sie es aus
column-rule-break: none;
column-rule-break: normal;
column-rule-break: intersection;
<section id="default-example">
<div id="example-element">
<i>A</i>
<i>B</i>
<i>C</i>
<i>D</i>
<i>E</i>
<i>F</i>
<i>G</i>
<i>H</i>
<i>I</i>
<i>J</i>
<i>K</i>
<i>L</i>
<i>M</i>
<i>N</i>
<i>O</i>
<i>P</i>
<i>Q</i>
<i>R</i>
<i>S</i>
<i>T</i>
<i>U</i>
<i>V</i>
<i>W</i>
<i>X</i>
<i>Y</i>
<i>Z</i>
</div>
</section>
#example-element {
display: grid;
grid-template-columns: repeat(7, 1fr);
column-rule: solid thick orange;
row-rule: solid thick lavender;
gap: 15px;
rule-overlap: column-over-row;
}
#example-element i {
padding: 5px;
}
Syntax
/* Keywords */
column-rule-break: none;
column-rule-break: normal;
column-rule-break: intersection;
/* Global values */
column-rule-break: inherit;
column-rule-break: initial;
column-rule-break: revert;
column-rule-break: revert-layer;
column-rule-break: unset;
Werte
Diese Eigenschaft wird als ein einzelnes Schlüsselwort aus der folgenden Liste angegeben:
none-
Es gibt keine Unterbrechungen in Spaltenlinien, wenn sie Zeilenlücken schneiden; stattdessen wird eine kontinuierliche Spaltenlinie über die gesamte Höhe des Containers gemalt, von Rand zu Rand.
normal-
In Raster- und Flex-Containern verhält sich wie
none. In Multi-Col verhält sich wieintersection. Dies ist der Standardwert. intersection-
Spaltenlinien brechen immer, wenn sie Zeilenlücken schneiden, wobei Spaltenlinien-Segmente zwischen Container- und Lückenkanten beginnen und enden.
Beschreibung
Die Eigenschaft column-rule-break gibt an, ob Spaltenlinien in Segmente unterteilt werden sollen, wenn sie Zeilenlücken schneiden.
Spaltenlinien werden in einer Spaltenlücke als ein oder mehrere Segmente gemalt, wobei Segmente zwischen benachbarten Rasterelementen in getrennten Spalten, zwischen Flex-Elementen oder Flex-Linien in Flex-Layouts abhängig von der flex-direction oder zwischen Spalten in Multi-Col-Layouts auftreten.
Die Eigenschaft column-rule-break bestimmt nur, ob die Unterbrechung auftritt. Standardmäßig ist die Unterbrechung zwischen Spaltenlinien-Segmenten die Höhe der Zeilenlücke, da jedes Segment an der Kante der Lücke (oder der Kante des Containers) beginnt und endet. Wenn die Zeilenlücke 0 ist, könnte diese Unterbrechung nicht sichtbar sein. Die Endpositionen können mit den column-rule-inset Eigenschaften gesteuert werden.
Wenn column-rule-break auf none gesetzt ist, gibt es keine Unterbrechungen. In diesem Fall ist die Spaltenlinie kontinuierlich und alle column-rule-inset Werte beeinflussen nur die linken und rechten Kanten der Spaltenlinie an der Kante des Containers. Wenn es Unterbrechungen gibt, beeinflussen die column-rule-inset Eigenschaften den Anfang und das Ende jedes Spaltenlinien-Segments.
Die Eigenschaft column-rule-break, zusammen mit der row-rule-break Eigenschaft, kann mit der rule-break Kurzschreibweise festgelegt werden.
Ob eine Spaltenlinie standardmäßig aus einem einzigen kontinuierlichen Segment besteht oder aus Segmenten, die bei der Kreuzung von Zeilenlücken unterbrochen werden, hängt vom Container-Typ ab.
Raster-Container
In Raster-Containern setzen Spaltenlinien-Segmente standardmäßig durch Zeilenlücken-Kreuzungen fort, was column-rule-break: none entspricht. Wenn column-rule-break: intersection gesetzt ist, wird erzwungen, dass die Segmente bei jeder Zeilenlücke brechen, die sie sonst überschreiten würden.
Standardmäßig gibt es keine Unterbrechungen in Spaltenlinien. Aktivieren Sie das Kontrollkästchen, um den column-rule-break auf intersection zu setzen, wodurch die ansonsten kontinuierlichen Regeln bei jeder "Kreuzung" brechen. Standardmäßig ist die Unterbrechung zwischen den Segmenten die Höhe der row-gap, die in diesem Fall auf 20px eingestellt wurde.
Flex-Container
In Flexbox hängt es davon ab, ob die Spaltenlinien standardmäßig bei jeder Zeilenlücke brechen, von der flex-direction ab. In horizontalen Schreibmodi, wenn auf row oder row-reverse gesetzt, brechen die Spaltenlinien bei jeder Zeilenlücke, was column-rule-break: intersection entspricht. Wenn die flex-direction column oder column-reverse ist, ist die Spaltenlinie standardmäßig kontinuierlich, was column-rule-break: none entspricht.
In horizontalen Schreibmodi wirkt sich das Setzen von column-rule-break auf intersection nur auf die Spaltenlinien in den column und column-reverse Szenarien aus.
Multi-Col-Container
In Multi-Col-Containern verhält sich der Standardwert normal wie intersection. Während die Zeilen-Dekoration standardmäßig kontinuierlich ist, brechen Spaltenlinien bei jeder Kreuzung. Spaltenlinien brechen an jeder Zeilenlücke in Segmente, wobei jedes Segment an der Kante der Lücke beginnt und endet. Diese Start- und Endpositionen können mit den column-rule-inset Eigenschaften verändert werden.
Wenn Sie none auswählen, wird die Spaltenlinie nicht mehr in Segmente unterbrochen, sondern sie wird vom oberen Rand des Containers fortgesetzt, bis sie den unteren Rand erreicht. Die column-rule-inset Eigenschaften können verwendet werden, um die Enden der Spaltenlückendekorationen zu versetzen.
Formale Definition
Wert in der Datenbank nicht gefunden!Formale Syntax
column-rule-break =
none |
normal |
intersection
Beispiele
>Grundlegende Nutzung
In diesem Beispiel verwenden wir die column-rule-break Eigenschaft, um jedes Regel-Segment in einem Raster-Container zu brechen, sodass Spaltenregel-Segmente zwischen Zeilenlücken erstellt werden. Das Ändern der row-gap Eigenschaft wird die Größe der Segmente ändern.
HTML
Wir erstellen eine Liste mit 50 Elementen und einen Schieberegler, um die Breite der Zeilenlücke auszuwählen. Der Großteil des HTML-Codes ist aus Gründen der Übersichtlichkeit ausgeblendet.
<ul>
<li>1</li>
<li>2</li>
...
<li>49</li>
<li>50</li>
</ul>
CSS
Wir definieren die ungeordnete Liste als einen 8-Spalten-Container, erstellen Zeilen und Spalten mit der grid-template-columns Eigenschaft und setzen list-style-type auf none, um die Punkte zu entfernen. Wir fügen ein gap von 20px ein, um genügend Abstand zwischen den Zeilen und Spalten zu schaffen, um unsere 20px festen Zeilen- und Spaltenregeln einzufügen. Wir fügen die Eigenschaft rule-overlap hinzu, um die Spalten-Dekoration über jede Zeilen-Dekoration zu malen. Schließlich setzen wir die Spaltenregeln auf Brechen bei jeder Kreuzung.
ul {
display: grid;
grid-template-columns: repeat(8, 1fr);
list-style-type: none;
gap: 20px;
column-rule: 10px solid olive;
row-rule: 10px solid palegoldenrod;
rule-overlap: column-over-row;
column-rule-break: intersection;
}
Der Rest des CSS ist aus Gründen der Übersichtlichkeit ausgeblendet.
Ergebnis
Machen Sie die Zeilenlücken breiter und beachten Sie, wie die Unterbrechungen zwischen den Spaltensegmenten größer werden. Verringern Sie die Breite der Zeilenlücke auf 0px, und beachten Sie, wie die Spaltendekoration kontinuierlich erscheint. Das ist sie nicht! Der 0px-Abstand zwischen Segmenten ist möglicherweise nicht sichtbar, aber die Segmente beginnen und enden immer noch an der Lücke, sodass alle Versätze, die mit column-rule-inset Eigenschaften festgelegt werden, weiterhin angewendet werden.
Spezifikationen
| Spezifikation |
|---|
| CSS Gaps Module Level 1> # propdef-column-rule-break> |
Browser-Kompatibilität
Siehe auch
row-rule-breakrule-breakKurzschreibweiserule-insetKurzschreibweiserule-overlaprule-visibility-itemsruleKurzschreibweise- CSS Lücken Modul