CSS repeating-linear-gradient() 颿°
Baseline
Widely available
*
This feature is well established and works across many devices and browser versions. Itâs been available across browsers since 2015å¹´7æ.
* Some parts of this feature may have varying levels of support.
repeating-linear-gradient() 㯠CSS ã®é¢æ°ã§ãå復ç·å½¢ã°ã©ãã¼ã·ã§ã³ã«ããç»åãçæãã¾ãã linear-gradient() ã¨ä¼¼ã¦ãããåã弿°ãåãã¾ããã両æ¹åã«ç¡éã«è²çµç±ç¹ãç¹°ãè¿ãã¦ã³ã³ããã¼å
¨ä½ãåãã¾ãã颿°ã®è¿å¤ã¯ <gradient> ãã¼ã¿åã®ãªãã¸ã§ã¯ãã§ããããã㯠<image> ã®ç¹æ®åã§ãã
試ãã¦ã¿ã¾ããã
background: repeating-linear-gradient(
#e66465,
#e66465 20px,
#9198e5 20px,
#9198e5 25px
);
background: repeating-linear-gradient(45deg, #3f87a6, #ebf8e1 15%, #f69d3c 20%);
background:
repeating-linear-gradient(transparent, #4d9f0c 40px),
repeating-linear-gradient(0.25turn, transparent, #3f87a6 20px);
<section class="display-block" id="default-example">
<div id="example-element"></div>
</section>
#example-element {
min-height: 100%;
}
ç¹°ãè¿ãã°ã©ãã¼ã·ã§ã³ã®é·ãã¯ãæåã®è²çµç±ç¹ã¨æå¾ã®è²çµç±ç¹ã®éã®è·é¢ã§ããæåã®è²ã« color-stop-length ããªãå ´åã color-stop-length ã®æ¢å®å¤ã¯ 0 ã«ãªãã¾ããããããã®ç¹°ãè¿ãã«ããã¦ãè²çµç±ç¹ã®ä½ç½®ã¯åºæ¬çãªç·å½¢ã°ã©ãã¼ã·ã§ã³ã®é·ãã®åæ°ã ããããããã®ã«ãªãã¾ãããã®çµæãã°ã©ãã¼ã·ã§ã³ã®æåã¨æå¾ã®è²ã¯å¸¸ã«é£ãåããã«ãªãã¾ããäºã¤ãç°ãªãè²ã§ããã°ãè¦è¦çã«æç¢ºãªå¤ããç®ãã§ããã§ããããããã¯æåã®è²ãæå¾ã®è²ã¨ãã¦åã³ä½¿ç¨ãããã¨ã§ä¿®æ£ãããã¨ãã§ãã¾ãã
ä»ã®ã°ã©ãã¼ã·ã§ã³ã¨åãããç·å½¢å復ã°ã©ãã¼ã·ã§ã³ãå å¨çãªå¯¸æ³ãæã¡ã¾ãããã¤ã¾ããæ¬æ¥ã®å¯¸æ³ãåªå ããã寸æ³ããåªå ãããã¢ã¹ãã¯ãæ¯ãæããªãã¨ãããã¨ã§ããå®éã®å¯¸æ³ã¯ãé©ç¨å ã®è¦ç´ ã®å¯¸æ³ã¨ä¸è´ãã¾ãã
<gradient> 㯠CSS ã® <image> ãã¼ã¿åã«æå±ãã¾ãã®ã§ã <image> ã使ç¨ã§ããã¨ããã§ã®ã¿ä½¿ç¨ã§ãã¾ãããã®ããã repeating-linear-gradient() 㯠background-color ãããã®ä»ã® <color> ãè¦æ±ããããããã£ã§ã¯åä½ãã¾ããã
æ§æ
/* 45 度æ¹åã«è»¸ãå»¶ã°ããéã§å§ã赤ã§çµããã
3 åç¹°ãè¿ãå復ã°ã©ãã¼ã·ã§ã³ */
repeating-linear-gradient(45deg, blue, red 33.3%)
/* å³ä¸ããå·¦ä¸ã«å»¶ã³ãéã§å§ã赤ã§çµããã
20px ãã¨ã«ç¹°ãè¿ãå復ã°ã©ãã¼ã·ã§ã³ */
repeating-linear-gradient(to left top, blue, red 20px)
/* ä¸ããä¸ã«å»¶ã³ãéã§å§ãã 40% ããç·ã«ãªãã
赤ã§çµããã°ã©ãã¼ã·ã§ã³ãæå¾ã®è²çµç±ç¹ãæ¢å®ã§
100% ãªã®ã§ãã°ã©ãã¼ã·ã§ã³ã¯ç¹°ãè¿ãããªã */
repeating-linear-gradient(0deg, blue, green 40%, red)
/* 5 åç¹°ãè¿ããå·¦ããå³ã«ã赤ã§å§ã¾ããç·ã«å¤ããã
èµ¤ã«æ»ãã°ã©ãã¼ã·ã§ã³ */
repeating-linear-gradient(to right, red 0%, green 10%, red 20%)
/* ç´äº¤è²ç©ºéã§ã®è£é */
repeating-linear-gradient(in oklab, blue, red 50px)
/* åçè²ç©ºéã§ã®è£é */
repeating-linear-gradient(in hsl, blue, red 50px)
/* åçè²ç©ºéã§ã®è£é
è²ç¸ã®è£éæ¹æ³ã« longer ãæå® */
repeating-linear-gradient(in hsl longer hue, blue, red 50px)
å¤
<side-or-corner>-
ã°ã©ãã¼ã·ã§ã³ç·ã®éå§ç¹ã®ä½ç½®ãæå®ããå ´åã¯ã
toã«ç¶ã㦠2 ã¤ä»¥ä¸ã®ãã¼ã¯ã¼ããæå®ãã¾ããä¸ã¤ã¯æ°´å¹³æ¹åã®è¾º (leftã¾ãã¯right)ããã䏿¹ã¯åç´æ¹åã®è¾º (topã¾ãã¯bottom) ã§ãã辺ã表ããã¼ã¯ã¼ãã¯é ä¸åã§ããæå®ããªãå ´åã¯ãto bottomãæ¢å®ã«ãªãã¾ããto top,to bottom,to left,to rightã®å¤ã¯ã0deg,180deg,270deg,90degã®è§åº¦ã«ãããã対å¿ãã¾ããä»ã®å¤ã¯è§åº¦ã«å¤æããã¾ãã <angle>-
ã°ã©ãã¼ã·ã§ã³ç·ã®æ¹åãè§åº¦ã§ç¤ºãã¾ãã
0degã®å¤ã¯to topã¨ç価ã§ãå¤ãå¢å ããã¨ããããæè¨åãã«åãã¾ãã <linear-color-stop>-
è²çµç±ç¹ã®
<color>ã®å¤ã§ãããä»»æã§ãã®å¾ã«åæ¢ä½ç½®ãæå®ãã¾ã(ã°ã©ãã¼ã·ã§ã³ã®è»¸ã«æ²¿ã£ã<percentage>ã¾ãã¯<length>ã®ä½ç½®)ã0%ã®ãã¼ã»ã³ãå¤ã¾ãã¯0ã®é·ãã¯ãã°ã©ãã¼ã·ã§ã³ã®å é ã表ãã¾ãã100%ã®å¤ã¯ç»åã®å¯¸æ³ã® 100% ã§ãããã¤ã¾ãã°ã©ãã¼ã·ã§ã³ã¯å復ããã¾ããã <color-hint>-
color-hint ã¯ãé£ãåãè²çµç±ç¹ã®éã§ã©ã®ããã«ã°ã©ãã¼ã·ã§ã³ãé²ãããå®ç¾©ããè£éã®ãã³ãã§ããé·ãã«ãã£ã¦ãã©ã®ä½ç½®ã§äºã¤ã®è²çµç±ç¹ã®ã°ã©ãã¼ã·ã§ã³è²ãè²ã®ç§»è¡ã®ä¸éç¹ã«éããããå®ç¾©ãã¾ããçç¥ãããå ´åãè²ã®ç§»è¡ã®ä¸éç¹ã¯äºã¤ã®è²çµç±ç¹ã®ä¸ç¹ã«ãªãã¾ãã
ã¡ã¢: å復ç·å½¢ã°ã©ãã¼ã·ã§ã³ã«ãããè²çµç±ç¹ã¯ãç·å½¢ã°ã©ãã¼ã·ã§ã³ã«ãããè²çµç±ç¹ã¨åãã«ã¼ã«ã«å¾ãã¾ãã
形弿æ³
<repeating-linear-gradient()> =
repeating-linear-gradient( [ <linear-gradient-syntax> ] )
<linear-gradient-syntax> =
[ [ <angle> | <zero> | to <side-or-corner> ] || <color-interpolation-method> ]? , <color-stop-list>
<side-or-corner> =
[ left | right ] ||
[ top | bottom ]
<color-interpolation-method> =
in [ <rectangular-color-space> | <polar-color-space> <hue-interpolation-method>? | <custom-color-space> ]
<color-stop-list> =
<linear-color-stop> , [ <linear-color-hint>? , <linear-color-stop> ]#?
<rectangular-color-space> =
srgb |
srgb-linear |
display-p3 |
display-p3-linear |
a98-rgb |
prophoto-rgb |
rec2020 |
lab |
oklab |
<xyz-space>
<polar-color-space> =
hsl |
hwb |
lch |
oklch
<hue-interpolation-method> =
[ shorter | longer | increasing | decreasing ] hue
<custom-color-space> =
<dashed-ident>
<linear-color-stop> =
<color> <color-stop-length>?
<linear-color-hint> =
<length-percentage>
<xyz-space> =
xyz |
xyz-d50 |
xyz-d65
<color-stop-length> =
<length-percentage>{1,2}
<length-percentage> =
<length> |
<percentage>
ä¾
>ç¸æ¨¡æ§
body {
background-image: repeating-linear-gradient(
-45deg,
transparent,
transparent 20px,
black 20px,
black 40px
);
/* è¤æ°ã®è²çµç±ç¹ã®ä½ç½® */
background-image: repeating-linear-gradient(
-45deg,
transparent 0 20px,
black 20px 40px
);
}
10 åç¹°ãè¿ãæ°´å¹³ç·
body {
background-image: repeating-linear-gradient(
to bottom,
rgb(26 198 204),
rgb(26 198 204) 7%,
rgb(100 100 100) 10%
);
}
æå¾ã®è²çµç±ç¹ã 10% ã§ãããã°ã©ãã¼ã·ã§ã³ãåç´ãªã®ã§ãå復ã°ã©ãã¼ã·ã§ã³å ã®åã°ã©ãã¼ã·ã§ã³ã¯ 10% ã®é«ãã«ãªãã 10 æ¬ã®æ°´å¹³ç·ã«ç¸å½ãã¾ãã
ç´äº¤è²ç©ºéã§ã®è£é
body {
background: repeating-linear-gradient(90deg in oklab, blue, red 100px);
}
è²ç¸ã§ã®è£é
ãã®è£éå¦çã®ä¾ã§ã¯ã hsl è²ç³»ã使ç¨ãã¦ãè²ç¸ãè£éãã¦ãã¾ãã
.shorter {
background: repeating-linear-gradient(
90deg in hsl shorter hue,
red,
blue 300px
);
}
.longer {
background: repeating-linear-gradient(
90deg in hsl longer hue,
red,
blue 300px
);
}
å·¦ã®ããã¯ã¹ã¯ã shorter ã®è£éã使ç¨ãã¦ãããè²ç¸ç°ã®çãæ¹ã®å¼§ã使ç¨ãã¦ãè²ã赤ããéã«ç´æ¥å¤åãã¦ããã¨ãããã¨ã«ãªãã¾ããå³ã®ããã¯ã¹ã¯ã longer ã®è£éã使ç¨ãã¦ãããè²ã赤ããéã«å¤åããéã«ãç·ãé»ããªã¬ã³ã¸ãéã£ã¦å¤åãã¦ããã¨ãããã¨ã«ãªãã¾ãã
ã¡ã¢: ä»ã®ä¾ã¯ CSS ã°ã©ãã¼ã·ã§ã³ã®ä½¿ç¨ãåç §ãã¦ãã ããã
仿§æ¸
| Specification |
|---|
| CSS Images Module Level 3> # repeating-gradients> |