--- title: repeating-linear-gradient slug: orphaned/Web/CSS/repeating-linear-gradient() translation_of: Web/CSS/repeating-linear-gradient() original_slug: Web/CSS/repeating-linear-gradient() ---
CSS函数 repeating-linear-gradient()
创建一个由重复线性渐变组成的{{cssxref("<image>")}}, 这是一个类似 {{cssxref("linear-gradient")}} 的函数,并且采用相同的参数,但是它会在所有方向上重复渐变以覆盖其整个容器. 这个函数的结果是一个{{cssxref("<gradient>")}} 数据类型的对象, 这是一个特殊的{{cssxref("<image>")}}类型。
/* 一个倾斜45度的重复线性渐变, 从蓝色开始渐变到红色 */ repeating-linear-gradient(45deg, blue, red); /* 一个从右下角到左上角的重复线性渐变, 从蓝色开始渐变到红色 */ repeating-linear-gradient(to left top, blue, red); /* 一个由下至上的重复线性渐变, 从蓝色开始,40%后变绿, 最后渐变到红色 */ repeating-linear-gradient(0deg, blue, green 40%, red);
每次重复时,色标位置的偏移量都是基准渐变长度(最后一个色标和第一个之间的距离)的倍数。因此,最后色标的色值应该与第一个色标的色值保持一致;如果不一致的话,会导致非常突兀的渐变效果。
与其他渐变一样,线形重复渐变没有提供 固定的尺寸;即, 它没有原始尺寸或首选尺寸,也没有首选的比列。它将自适应于对应元素的尺寸。
提示: 因为 <gradient>
属于<image>
数据类型,所以只能在可以使用 <image>
的地方使用它们。因此repeating-linear-gradient()
不适用于{{Cssxref("background-color")}}以及使用 {{cssxref("<color>")}} 数据类型的地方。
<side-or-corner>
<color-stop>
repeating-linear-gradient( [ <angle> | to <side-or-corner> ,]? <color-stop> [, <color-stop>]+ ) \---------------------------------/ \----------------------------/ 渐变轴的定义 色标列表 where<side-or-corner> = [left | right] || [top | bottom]
and<color-stop> = <color> [ <percentage> | <length> ]?
#grad1 { background-image: repeating-linear-gradient(180deg, rgb(26,198,204), rgb(26,198,204) 7%, rgb(100,100,100) 10%); } #grad2 { background-image: repeating-linear-gradient(-45deg, transparent, transparent 25px, rgba(255,255,255,1) 25px, rgba(255,255,255,1) 50px); }
<ol> <li>Repeating horizontal bars <div id="grad1"></div> </li> <li>Zebra stripes <div id="grad2"></div> </li> </ol>
{{EmbedLiveSample('Example_hidden', '300px', '300px', '')}}
规格 | 状态 | 备注 |
---|---|---|
{{SpecName('CSS3 Images', '#repeating-gradients', 'repeating-linear-gradient()')}} | {{Spec2('CSS3 Images')}} | Initial definition. |
Feature | Firefox (Gecko) | Chrome | Internet Explorer | Opera | Safari |
---|---|---|---|---|---|
Basic support (on {{cssxref("background")}} and {{cssxref("background-image")}}) | {{CompatGeckoDesktop("1.9.2")}}{{property_prefix("-moz")}}[3] {{CompatGeckoDesktop("16")}}[5] |
10.0 (534.16){{property_prefix("-webkit")}} [2][3] | 10.0 [1] | 11.10{{property_prefix("-o")}} [3] | 5.1{{property_prefix("-webkit")}}[2][3] |
On {{cssxref("border-radius")}} | {{CompatGeckoDesktop("29")}} | {{CompatVersionUnknown}} | {{CompatVersionUnknown}} | {{CompatVersionUnknown}} | {{CompatVersionUnknown}} |
On any other property that accept {{cssxref("<image>")}} | {{CompatNo}} | {{CompatVersionUnknown}} | {{CompatVersionUnknown}} | {{CompatVersionUnknown}} | {{CompatVersionUnknown}} |
Legacy webkit syntax{{non-standard_inline}} | {{CompatNo}} | 3{{property_prefix("-webkit")}} [2] | {{CompatNo}} | {{CompatNo}} | 4.0{{property_prefix("-webkit")}}[2] |
Legacy from syntax (without to ){{non-standard_inline}} |
{{CompatGeckoDesktop("1.9.2")}}{{property_prefix("-moz")}}[4] Removed in {{CompatGeckoDesktop("16")}}[7] |
10.0 (534.16){{property_prefix("-webkit")}} [2] | 10.0 | 11.10{{property_prefix("-o")}}[4] | 5.1{{property_prefix("-webkit")}}[2] |
to syntax |
{{CompatGeckoDesktop("10")}}{{property_prefix("-moz")}}[4] {{CompatGeckoDesktop("16")}} |
26.0 | 10.0 | 11.60{{property_prefix("-o")}}[4] Presto 2.12 will remove the prefix. |
{{CompatNo}} |
Interpolation hints/gradient midpoints (a percent without a color) | {{CompatGeckoDesktop("36")}} | 40 | {{CompatUnknown}} | 27 | {{CompatVersionUnknown}}[6] |
Unitless 0 for <angle> |
{{CompatGeckoDesktop("46")}}{{property_prefix("-webkit")}}[8] {{CompatNo}}[9] |
{{CompatVersionUnknown}} | Edge 12 | {{CompatVersionUnknown}} | {{CompatVersionUnknown}} |
Feature | Firefox (Gecko) | Chrome | Internet Explorer | Opera (Presto) | Safari |
---|---|---|---|---|---|
Basic support | {{CompatGeckoMobile("1.9.2")}}{{property_prefix("-moz")}}[3] {{CompatGeckoMobile("16")}}[5] |
16{{property_prefix("-webkit")}} |
10 | {{CompatVersionUnknown}} | {{CompatVersionUnknown}}[6] |
[1] Internet Explorer 5.5 through 9.0 supports proprietary filter: progid:DXImageTransform.Microsoft.Gradient()
filter.
[2] WebKit since 528 supports the legacy -webkit-gradient(linear,…)
function. As of WebKit 534.16, it also supports the standard gradient syntax. Unlike in Gecko, in legacy WebKit you cannot specify both a position and angle in -webkit-linear-gradient()
. You can achieve the same effect by offsetting the color stops.
[3] Gecko, Opera & Webkit considers {{cssxref("<angle>")}} to start to the right, instead of the top. I.e. it considered an angle of 0deg
as a direction indicator pointing to the right. This is different from the latest specification where an angle of 0deg
as a direction indicator points to the top. Since Firefox 42, the prefixed version of gradients can be disabled by setting layout.css.prefixes.gradients
to false
.
[4] Firefox 3.6 and Opera 11.10 implemented, prefixed, an early syntax where the starting corner or side was indicated without the to
keyword, and effectively considered as a from position. The to
syntax has been added in Firefox 10 and Opera 11.60 , at first without removing the deprecated syntax and translation between the two is trivial:
-moz-repeating-linear-gradient(to top left, blue, red);
is the same as:
-moz-repeating-linear-gradient(bottom right, blue, red);
The legacy syntax, without to
, is planned to go away when the prefix is removed.
[5] Before Firefox 36, Gecko didn't apply gradient on the pre-multiplied color space, leading to shade of grey unexpectedly appearing when used with transparency.
[6] {{webkitbug(1074056)}}.
[7] In addition to the unprefixed support using the standard syntax, Gecko 44.0 {{geckoRelease("44.0")}} added support for a -webkit
prefixed version of the function using the legacy 'from' syntax for web compatibility reasons behind the preference layout.css.prefixes.webkit
, defaulting to false
. Since Gecko 49.0 {{geckoRelease("49.0")}} the preference defaults to true
.
[8] In -webkit-linear-gradient
function (handled below), Gecko accept unitless 0 for angles, to match webkit/blink,See {{bug("1239153")}}.
[9] See {{bug("1363292")}}.