Movatterモバイル変換


[0]ホーム

URL:


  1. Web
  2. CSS
  3. Reference
  4. Properties
  5. mask-repeat

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

View in EnglishAlways switch to English

mask-repeat

Baseline 2023
Newly available

Since December 2023, this feature works across the latest devices and browser versions. This feature might not work in older devices or browsers.

Diemask-repeat-Eigenschaft vonCSS legt fest, wie Maskenbilder wiederholt werden. Ein Maskenbild kann entlang der horizontalen Achse, der vertikalen Achse, beiden Achsen oder gar nicht wiederholt werden.

Syntax

css
/* One-value syntax */mask-repeat: repeat-x;mask-repeat: repeat-y;mask-repeat: repeat;mask-repeat: space;mask-repeat: round;mask-repeat: no-repeat;/* Two-value syntax: horizontal | vertical */mask-repeat: repeat space;mask-repeat: repeat repeat;mask-repeat: round space;mask-repeat: no-repeat round;/* Multiple values */mask-repeat:  space round,  no-repeat;mask-repeat:  round repeat,  space,  repeat-x;/* Global values */mask-repeat: inherit;mask-repeat: initial;mask-repeat: revert;mask-repeat: revert-layer;mask-repeat: unset;

Werte

Diemask-repeat-Eigenschaft ist eine durch Kommas getrennte Liste von zwei<repeat-style>-Werten, wobei der erste<repeat-style>-Wert den horizontalen Wiederholungswert darstellt und der zweite Wert den vertikalen Wiederholungswert, oder ein Schlüsselwortwert, der eine Kurzform für zwei<repeat-style>-Werte ist.

<repeat-style>-Werte

Die<repeat-style>-Werte umfassen:

repeat

Das Bild wird so oft wie nötig wiederholt, um den gesamten maskenmalenden Bereich zu bedecken. Maskenbilder entlang der Kanten werden abgeschnitten, wenn die Größe desmaskenursprungsbereichs kein genaues Vielfaches der Größe des Maskenbildes ist.

space

Das Maskenbild wird so oft wie möglich ohne Abschneiden wiederholt. Wenn die Ursprunggröße des Elements mindestens doppelt so groß ist wie die Größe des Maskenbildes in der zugehörigen Dimension, wird diemask-position-Eigenschaft ignoriert und die ersten und letzten Bilder an den Kanten des maskenursprungscontainers positioniert. Wenn der maskenursprungsbereich kein genaues Vielfaches der Größe des Maskenbildes ist, wird der Leerraum gleichmäßig zwischen den wiederholten Maskenbildern verteilt.

Wenn die Ursprungsboxgröße weniger als doppelt so groß ist wie die Größe des Maskenbildes in der gegebenen Dimension, kann nur ein Maskenbild angezeigt werden. In diesem Fall wird das Bild so positioniert, wie es durch diemask-position-Eigenschaft definiert ist, die standardmäßig auf0% 0% eingestellt ist. Das Maskenbild wird nur abgeschnitten, wenn es größer ist als der maskenursprungsbereich.

round

Das Maskenbild wird so oft wie möglich in seinen ursprünglichen Abmessungen wiederholt. Wenn die Größe des maskenursprungsbereichs kein genaues Vielfaches der Größe des Maskenbildes ist, werden alle Maskenbilderverkleinert oder gestreckt, um sicherzustellen, dass keine Wiederholungen abgeschnitten werden.

no-repeat

Das Maskenbild wird nicht wiederholt, und daher wird der maskenmalende Bereich nicht unbedingt vollständig bedeckt. Die Position des nicht wiederholten Maskenbildes wird durch diemask-position-CSS-Eigenschaft definiert.

Kurzformwerte

Die Ein-Wert-Syntax ist eine Kurzform für die vollständige Zwei-Wert-Syntax:

EinzelwertZwei-Wert-Äquivalent
repeat-xrepeat no-repeat
repeat-yno-repeat repeat
repeatrepeat repeat
spacespace space
roundround round
no-repeatno-repeat no-repeat
repeat-x

Entsprichtrepeat no-repeat. Das Bild wird horizontal so oft wiederholt, wie nötig, um die Breite des maskenmalenden Bereichs abzudecken. Maskenbilder entlang der rechten oder linken Kanten, oder beides je nachmask-position-Wert, werden abgeschnitten, wenn die Breite des maskenursprungsbereichs kein genaues Vielfaches der Breite des Maskenbildes ist.

repeat-y

Entsprichtno-repeat repeat. Das Bild wird vertikal so oft wiederholt, wie nötig, um die Höhe des maskenmalenden Bereichs abzudecken. Maskenbilder entlang der oberen oder unteren Kanten, oder beides je nachmask-position-Wert, werden abgeschnitten, wenn die Höhe des maskenursprungsbereichs kein genaues Vielfaches der Höhe des Maskenbildes ist.

Beschreibung

Diemask-repeat-Eigenschaft akzeptiert ein durch Kommas getrenntes Paar von Werten oder einenKurzformwert. Bei der Zwei-Wert-Syntax repräsentiert der erste Wert das horizontale Wiederholungsverhalten und der zweite Wert das vertikale Verhalten.

Mehrfache Werte

Jedermask-repeat-Wert in dieser durch Kommas getrennten Liste gilt für eine separate Maskenebene. Ein Element kann mehrere Maskenebenen aufweisen. Die Anzahl der Ebenen wird durch die Anzahl der durch Kommas getrennten Werte in dermask-image-Eigenschaft bestimmt (auch wenn ein Wertnone ist). Jedermask-repeat-Wert wird denmask-image-Werten der Reihe nach zugeordnet. Wenn die Anzahl der Werte in den beiden Eigenschaften unterschiedlich ist, werden überzähligemask-repeat-Werte ignoriert oder, fallsmask-repeat weniger Werte alsmask-image aufweist, werden diemask-repeat-Werte wiederholt.

Größen- und Positionierungsanpassung

Dermask-repeat-Eigenschaftswert definiert, wie Maskenbilder gekachelt werden, nachdem sieskaliert undpositioniert wurden. Die erste (und möglicherweise einzige) Wiederholung des Maskenbildes wird durch diemask-position-Eigenschaft positioniert, die standardmäßig auf0% 0%, die obere linke Ecke des Ausgangsbereichs, eingestellt ist. Die Größe wird durch diemask-size-Eigenschaft definiert, die standardmäßig aufauto steht. Die Positionen der wiederholten Masken basieren auf diesem ersten Maskeninstanz.

Abschneiden

Maskenbilder werden nicht wiederholt, sondern werden abgeschnitten, wenn die Größe des Maskenbildes größer ist als der Ursprungsbereich, außer im Fall vonround, wo eine einzelne Maske verkleinert wird, um in den Ursprungsbereich zu passen.

Beirepeat-Werten können Maskenbilder am Rand des Ursprungsbereichs abgeschnitten werden, wenn die Dimension (Breite oder Höhe) des Bereichs kein genaues Vielfaches der Maske ist.

Seitenverhältnis

Standardmäßig behalten Maskenbilder das Seitenverhältnis bei, das durch diemask-size-Eigenschaft gesetzt wurde oder ihr Standard-Seitenverhältnis, wennmask-size standardmäßig oder explizit aufauto gesetzt ist. Nur im Fall vonround-Werten in beiden Richtungen könnte das Seitenverhältnis der Maske verzerrt werden.

Wennround in beiden Richtungen gesetzt ist, entsprechen die resultierenden wiederholten Maskenbilder dem Seitenverhältnis des Ursprungsbereichs. Da die Maskenbilder skaliert werden, können sie verzerrt werden, um sicherzustellen, dass die Maskenbilder nicht abgeschnitten werden. Wennround nur in einer Dimension gesetzt ist, wird das Seitenverhältnis der Maskengröße respektiert.

Gerundete Wiederholungen

Im Falle vonround werden Maskenbilder vergrößert oder verkleinert, um die Maske in der Positionierungsfläche eine ganze Zahl von Malen anzupassen. Die Maskengröße erhöht oder verringert sich, um der nächstgelegenen natürlichen Zahl an Masken zu entsprechen, mit einem Minimum von einer Maske.

Die gerenderten Dimensionen der Maske sind die Größe des Ursprungsbereichs geteilt durch die Anzahl der Wiederholungen der Masken in dieser Dimension, wobei die Wiederholungen eine ganzzahlige Zahl größer null sind. Die Anzahl der Wiederholungen ist:X' = D / round(D / X), wobeiD die Breite oder Höhe ist, undround() ist eine Funktion, die die nächstgelegene ganze Zahl größer null zurückgibt.

Zum Beispiel, wennmask-repeat aufround gesetzt ist undmask-size die Maske auf40px Breite einstellt, wird, wenn der Ursprungsbereich vorhanden ist (größer als0px breit), jedoch weniger als60px breit, eine einzige Iteration bei 100% der Breite dieses Bereichs vorhanden sein. Wenn der Bereich mindestens60px breit, jedoch weniger als100px breit ist, gibt es zwei Iterationen, die jeweils50% des Bereichs einnehmen. Von 100px bis 140px passen drei Masken entlang der horizontalen Achse. Diese "40px-breiten" Masken werden nur40px breit sein, wenn der Ursprungsbereich ein genaues Vielfaches von40px ist.

Formale Definition

Anfangswertrepeat
Anwendbar aufalle Elemente; In SVG gilt betrifft dies Containerelemente mit Ausnahme des<defs> Elements und allen Grafikelementen
VererbtNein
Berechneter WertBesteht aus zwei Schlüsselwörtern, einem pro Richtung
Animationstypdiskret

Formale Syntax

mask-repeat =
<repeat-style>#

<repeat-style> =
repeat-x|
repeat-y|
repeat-block|
repeat-inline|
<repetition>{1,2}

<repetition> =
repeat|
space|
round|
no-repeat

Beispiele

Grundlegende Verwendung

Dieses Beispiel zeigt die Einstellung dermask-repeat-Eigenschaft für eine einzelne Maske.

HTML

Unser HTML enthält ein einfaches<div>-Element:

html
<div></div>

CSS

Wir definieren ein250px Quadrat mit einem roten zu blauen Farbverlauf mit einem100px mal100px Stern als Maskenbild. Wir verwenden diemask-repeat-Eigenschaft und setzenround für die horizontale Richtung undspace für den vertikalen Wert.

css
div {  width: 250px;  height: 250px;  background-image: linear-gradient(red, blue);  mask-image: url("/shared-assets/images/examples/mask-star.svg");  mask-size: 100px 100px;  mask-repeat: round space;}

Ergebnisse

Mitspace undround auf einem Maskenbild, das kleiner als der Ursprungsbereich ist, wird die Maske nicht abgeschnitten. Vielmehr verzerrt derround-Wert den Stern, um Abschneiden zu verhindern und weißen Raum zu vermeiden, währendspace das Seitenverhältnis des Sterns beibehält, aber bei Bedarf Platz zwischen den Masken hinzufügt.

Gerundete Iterationen

Mit dem gleichen HTML und CSS zeigt diese Demonstration einen Schieberegler, der die Breite des Containers ändert, um zu zeigen, wie sich beiround die Masken vergrößern, solange Platz vorhanden ist, bis eine weitere Iteration der Maske passt, oder verkleinern, bis die Anzahl der Iterationen nicht mehr passt.

<div></div><label  >width: <span></span><br />  <input type="range" min="0" max="400" value="250" /></label>
div {  width: 250px;  height: 250px;  background-image: linear-gradient(red, blue);  mask-image: url("/shared-assets/images/examples/mask-star.svg");  mask-size: 100px 100px;  mask-repeat: round space;}input {  clear: both;  width: 90%;}
const div = document.querySelector("div");const range = document.getElementById("width");const output = document.querySelector("span");range.addEventListener("change", () => {  const value = `${range.value}px`;  output.innerText = value;  div.style.width = value;});

Die Maske ist definiert als100px breit. Es gibt einen einzigen Stern, wenn der Ursprungsbereich von1px bis149px breit ist, zwei Sterne von150px bis249px, drei Sterne von250px bis349px und so weiter.

Die Kurzformwerte

Dieses Beispiel demonstriert allemask-repeat-Kurzform (Einzelschlüsselwort) Werte.

HTML

Wir fügen mehrere<section>-Elemente hinzu, die jeweils ein<div> enthalten, jedes mit einem anderen Klassennamen.

html
<section>  <div></div></section><section>  <div></div></section><section>  <div></div></section><section>  <div></div></section><section>  <div></div></section><section>  <div></div></section>

CSS

Wir geben jedem<div> das gleiche CSS, außer für denmask-repeat-Wert, den wir an den Klassennamen ihrer Eltern anpassen. Wir definieren eine Maskengröße und setzen das anfänglichemask-image unten rechts, was bedeutet, dass jedes Abschneiden auf den oberen und linken Seiten der obersten und linken Masken erfolgt.

css
div {  width: 180px;  height: 180px;  background-image: linear-gradient(red, blue);  mask-image: url("/shared-assets/images/examples/mask-star.svg");  mask-size: 50px 50px;  mask-position: bottom right;}.repeat div {  mask-repeat: repeat;}.space div {  mask-repeat: space;}.round div {  mask-repeat: round;}.no-repeat div {  mask-repeat: no-repeat;}.repeat-x div {  mask-repeat: repeat-x;}.repeat-y div {  mask-repeat: repeat-y;}

Wir zeigen den Klassennamen mit generiertem Inhalt an.

css
section::before {  content: attr(class);  display: block;  text-align: center;  border-bottom: 1px solid;}
body {  display: flex;  flex-flow: row wrap;  gap: 10px;}section {  border: 1px solid;}

Ergebnisse

Der erste (und im Fall vonno-repeat, einzige) Maskenstern wird auf50px x 50px skaliert und wirdunten rechts im Malbereich positioniert, wobei wiederholte Sterne darüber und/oder links davon mit jedem Abschneiden auftreten, das oben und links von den obersten und links liegenden Sternen geschieht. Beachten Sie, dass alle Sterne dieselbe Größe und Form haben, außer beiround, bei dem alle Masken auf 45px x 45px schrumpften, um vier vollständige Masken in jede Richtung zu passen. Wäre der Container 174px gewesen, hätte es drei Sterne in jede Richtung gegeben, statt vier, und jeder Stern wäre gestreckt worden.

Mehrere Maskenbilder und Wiederholungen

Sie können einen anderen<repeat-style> für jedes Maskenbild angeben, getrennt durch Kommas:

css
.extra-repeats {  mask-image: url("mask1.png"), url("mask2.png");  mask-repeat: repeat-x, repeat-y, space;}

Jedes Bild wird mit dem entsprechenden Wiederholungsstil abgeglichen. Da es mehrmask-repeat-Werte alsmask-image-Werte gibt, werden die überzähligenmask-repeat-Werte ignoriert.

css
.missing-repeats {  mask-image:    url("mask1.png"), url("mask2.png"), url("mask3.png"), url("mask4.png");  mask-repeat: repeat-x, repeat-y;}

Jedes Bild wird mit einem entsprechenden Wiederholungsstil abgeglichen. Da es mehrmask-image-Werte alsmask-repeat-Werte gibt, wirdmask-repeat so lange wiederholt, bis jedesmask-image einen zugehörigenmask-repeat-Wert hat. Hier wiederholen sich ungerade nummerierte Masken entlang der x-Achse, während die gerade nummerierten Masken sich entlang der y-Achse wiederholen.

Spezifikationen

Specification
CSS Masking Module Level 1
# the-mask-repeat

Browser-Kompatibilität

Siehe auch

Help improve MDN

Learn how to contribute Diese Seite wurde automatisch aus dem Englischen übersetzt.

[8]ページ先頭

©2009-2026 Movatter.jp