aboutsummaryrefslogtreecommitdiff
path: root/files/ru/web/css/linear-gradient()/index.html
diff options
context:
space:
mode:
Diffstat (limited to 'files/ru/web/css/linear-gradient()/index.html')
-rw-r--r--files/ru/web/css/linear-gradient()/index.html212
1 files changed, 212 insertions, 0 deletions
diff --git a/files/ru/web/css/linear-gradient()/index.html b/files/ru/web/css/linear-gradient()/index.html
new file mode 100644
index 0000000000..4433b0587d
--- /dev/null
+++ b/files/ru/web/css/linear-gradient()/index.html
@@ -0,0 +1,212 @@
+---
+title: linear-gradient()
+slug: Web/CSS/linear-gradient()
+tags:
+ - Градиент
+ - Линейный градиент
+translation_of: Web/CSS/linear-gradient()
+---
+<div>{{CSSRef}}</div>
+
+<p><a href="/en-US/docs/Web/CSS">CSS</a>-функция <strong><code>linear-gradient()</code></strong> создаёт изображение, состоящее из постепенного перехода между двумя или более цветами вдоль прямой линии. Её результатом является объект типа данных {{CSSxRef("&lt;gradient&gt;")}}, являющийся особым видом {{CSSxRef("&lt;image&gt;")}}.</p>
+
+<div>{{EmbedInteractiveExample("pages/css/function-linear-gradient.html")}}</div>
+
+<div class="hidden">Исходник для этого интерактивного примера хранится в GitHub-репозитории. Если вы хотите внести свой вклад в проект интерактивных примеров, пожалуйста клонируйте <a href="https://github.com/mdn/interactive-examples">https://github.com/mdn/interactive-examples</a> и отправьте нам запрос на извлечение.</div>
+
+<p>Как и в случае с любым градиентом, линейный градиент не имеет <a href="/en-US/docs/CSS/image#no_intrinsic">внутренних размеров</a>; т. е., он не имеет ни естественного или предпочтительного размера, ни предпочтительного соотношения сторон. Его фактический размер будет совпадать с размеров элемента, к которому он применён.</p>
+
+<p>Для создания линейного градиента, повторяющегося таким образом, что он заполняет содержащий его элемент, лучше используйте функцию {{CSSxRef("repeating-linear-gradient")}}.</p>
+
+<p>Так как <code>&lt;gradient&gt;</code>ы относятся к типу данных <code>&lt;image&gt;</code>, они могут использоваться только там, где может использоваться <code>&lt;image&gt;</code>. По этой причине, <code>linear-gradient()</code> не будет работать в качестве {{CSSxRef("background-color")}} и других свойств, использующих тип данных {{CSSxRef("&lt;color&gt;")}}.</p>
+
+<h2 id="Создание_линейного_градиента">Создание линейного градиента</h2>
+
+<p>Линейный градиент определяется осью — <em>линией градиента</em> — и двумя или более <em>точками остановки цвета</em>. Каждая точка на оси – это определённый цвет; для создания плавного градиента функция <code>linear-gradient()</code> рисует серию цветных линий, перпендикулярных линии градиента, каждая из них соответствует цвету точки, в которой она пересекает линию градиента.</p>
+
+<p><img alt="linear-gradient.png" src="/files/3537/linear-gradient.png" style="float: left; height: 383px; width: 309px;"></p>
+
+<p>Линия градиента определена центром блока, содержащего изображение градиента, и углом. Цвета градиента задаются двумя или более точками: начальной точкой, конечной точкой, и необязательными точками остановки цвета между ними.</p>
+
+<p><em>Начальная точка</em> – это место на линии градиента, где начинается первый цвет. <em>Конечная точка</em> – это точка, на которой заканчивается последний цвет. Каждая из этих двух точек определяется пересечением линии градиента с перпендикулярной линией, проходящей от угла, находящегося в том же квадранте блока. Конечную точку можно просто считать как точку, симметричную начальной точке. Эти несколько сложные определения приводят к интересному эффекту, иногда называемому <em>магическими углами</em>: углы, ближайшие к начальной и конечной точке, имеют те же цвета, что и соответствующая им начальная или конечная точка.</p>
+
+<h3 id="Настройка_градиентов">Настройка градиентов</h3>
+
+<p>Добавляя больше точек остановки цвета на линию градиента, вы можете точно задавать переходы между разными цветами. Позиции остановок цвета могут быть явно заданы использованием значений типа {{CSSxRef("&lt;length&gt;")}} или {{CSSxRef("&lt;percentage&gt;")}}. Если вы не определите расположение цвета, он будет расположен посередине между предыдущим и следующим цветом. Следующие два градиента эквивалентны.</p>
+
+<pre class="brush: css">linear-gradient(red, orange, yellow, green, blue);
+linear-gradient(red 0%, orange 25%, yellow 50%, green 75%, blue 100%);</pre>
+
+<p>По умолчанию цвета переходят плавно от цвета на одной точке остановки до цвета на следующей точке остановки, по середине которого – точка, являющаяся половиной перехода от одного цвета к другому. Вы можете двигать эту среднюю точку в любую позицию между двумя точками остановки цвета, добавляя цветовую подсказку в виде значения в % между двумя цветами для того, чтобы обозначить, где должна находиться середина цветового перехода. В следующем примере показан чисто красный цвет от начала до отметки 10% и чисто синий от 90% до конца. Между 10% и 90% цвет переходит от красного до синего, однако середина цветового перехода находится на отметке 30%, а не на 50%, как было бы без добавления цветовой подсказки 30%.</p>
+
+<pre class="brush: css">linear-gradient(red 10%, 30%, blue 90%);</pre>
+
+<p>Если две или более точки остановки цвета находятся в одной и той же позиции, переход будет в виде чёткой линии между первым и последним цветом, объявленным на этой позиции.</p>
+
+<p>Точки остановки цвета должны быть перечислены в порядке возрастания. Соседние точки остановки цвета с меньшим значением переопределят значение предыдущей точки остановки цвета, создавая резкий переход. В примере ниже на позиции 30% происходит замена красного на жёлтый, и затем идёт переход от жёлтого до синего на протяжении 35% длины градиента.</p>
+
+<pre class="brush: css">linear-gradient(red 40%, yellow 30%, blue 65%);
+</pre>
+
+<p>Допустимо использовать многопозиционную остановку цвета. Цвет может быть объявлен как две смежных точки остановки цвета, если включить его в обе позиции в CSS-объявлении. Следующие три градиента эквивалентны:</p>
+
+<pre class="brush: css">linear-gradient(red 0%, orange 10%, orange 30%, yellow 50%, yellow 70%, green 90%, green 100%);
+linear-gradient(red, orange 10% 30%, yellow 50% 70%, green 90%);
+linear-gradient(red 0%, orange 10% 30%, yellow 50% 70%, green 90% 100%);</pre>
+
+<p>По умолчанию, если на остановку 0% не задан цвет, то на этой точке будет располагаться первый объявленный цвет. Аналогично, последний цвет будет продолжаться до отметки 100%, или будет на отметке 100%, если на этой последней остановке не было объявлено никакой длины.</p>
+
+<h2 id="Синтаксис">Синтаксис</h2>
+
+<pre class="language-css" id="css">/* Градиент наклонён на 45 градусов,
+  начинается с синего, заканчивается красным */
+linear-gradient(45deg, blue, red);
+
+/* Градиент идёт от правого нижнего до левого верхнего угла,
+  от синего до красного */
+linear-gradient(to left top, blue, red);
+
+/* Остановка цвета: градиент идёт снизу вверх,
+  начинается синим, становится зелёным на 40% своей длины,
+  и заканчивается красным */
+linear-gradient(0deg, blue, green 40%, red);
+
+/* Цветовая подсказка: градиент идёт слева направо,
+  начинается с красного, достигает среднего цвета
+  на 10% пути длины градиента,
+  занимая оставшиеся 90% длины переходом в синий */
+linear-gradient(.25turn, red, 10%, blue);
+
+/* Многопозиционная остановка цвета: градиент повёрнут на 45 градусов,
+  с красной нижней левой половиной, синей верхней правой половиной,
+  с чёткой линией на месте перехода градиента из красного в синий */
+linear-gradient(45deg, red 0 50%, blue 50% 100%);</pre>
+
+<h3 id="Значения">Значения</h3>
+
+<dl>
+ <dt><code>&lt;side-or-corner&gt;</code></dt>
+ <dd>Позиция начальной точки линии градиента. Если указана, то должна состоять из слова <code>to</code> и максимум до двух ключевых слов включительно: одно обозначает горизонтальную сторону (<code>left</code> или <code>right</code>), а другое – вертикальную сторону (<code>top</code> или <code>bottom</code>). Порядок ключевых слов не важен. Если не определено, то принимает значение <code>to bottom</code>.</dd>
+ <dd>Значения <code>to top</code>, <code>to bottom</code>, <code>to left</code> и <code>to right</code> эквивалентны углам <code>0deg</code>, <code>180deg</code>, <code>270deg</code> и <code>90deg</code>, соответственно. Другие значения переводятся в значение угла.</dd>
+ <dt>{{CSSxRef("&lt;angle&gt;")}}</dt>
+ <dd>Угол направления линии градиента. Значение <code>0deg</code> эквивалентно <code>to top</code>; увеличение значения увеличивает угол поворота по часовой стрелке от этой позиции.</dd>
+ <dt><code>&lt;linear-color-stop&gt;</code></dt>
+ <dd>Значение точки остановки цвета {{CSSxRef("&lt;color&gt;")}}, с последующими одной или двумя необязательными точками остановки (имеющими значение типа {{CSSxRef("&lt;percentage&gt;")}} или {{CSSxRef("&lt;length&gt;")}} вдоль оси градиента).</dd>
+ <dt><code>&lt;color-hint&gt;</code></dt>
+ <dd>Цветовая подсказка – это подсказка для перехода, определяющая, как градиент продвигается между соседними точками остановки цвета. Длина определяет, на какой точке между двумя точками остановки цвет градиента должен достичь среднего значения цветового перехода. Если не указано, средней точкой цветового перехода будет середина между двумя точками остановки цвета.</dd>
+ <dd>
+ <div class="note">
+ <p><strong>Примечание:</strong> Отрисовка <a href="#Gradient_with_multiple_color_stops">цветовых остановок в CSS-градиентах</a> следует тем же правилам, что и цветовые остановки в <a href="/en-US/docs/Web/SVG/Tutorial/Gradients">SVG-градиентах</a>.</p>
+ </div>
+ </dd>
+</dl>
+
+<h3 id="Формальный_синтаксис">Формальный синтаксис</h3>
+
+<pre class="syntaxbox">linear-gradient(
+ [ <a href="/en-US/CSS/angle">&lt;angle&gt;</a> | to &lt;side-or-corner&gt; ,]? &lt;color-stop-list&gt; )
+ \---------------------------------/ \----------------------------/
+ Определение линии градиента Список остановок цвета
+
+где &lt;side-or-corner&gt; = [ left | right ] || [ top | bottom ]
+ и &lt;color-stop-list&gt; = [ &lt;linear-color-stop&gt; [, &lt;color-hint&gt; ]? ]#, &lt;linear-color-stop&gt;
+ и &lt;linear-color-stop&gt; = &lt;color&gt; [ &lt;color-stop-length&gt; ]?
+ и &lt;color-stop-length&gt; = [ &lt;percentage&gt; | &lt;length&gt; ]{1,2}
+ и &lt;color-hint&gt; = [ &lt;percentage&gt; | &lt;length&gt; ]</pre>
+
+<h2 id="Примеры">Примеры</h2>
+
+<h3 id="Градиент_под_углом_45_градусов">Градиент под углом 45 градусов</h3>
+
+<div class="hidden">
+<pre class="brush: css">body {
+ width: 100vw;
+ height: 100vh;
+}</pre>
+</div>
+
+<pre class="brush: css">body {
+ background: linear-gradient(45deg, red, blue);
+}
+</pre>
+
+<p>{{EmbedLiveSample("Градиент_под_углом_45_градусов", 120, 120)}}</p>
+
+<h3 id="Градиент_начинающийся_на_60_линии_градиента">Градиент, начинающийся на 60% линии градиента</h3>
+
+<div class="hidden">
+<pre class="brush: css">body {
+ width: 100vw;
+ height: 100vh;
+}</pre>
+</div>
+
+<pre class="brush: css">body {
+ background: linear-gradient(135deg, orange, orange 60%, cyan);
+}</pre>
+
+<p>{{EmbedLiveSample("Градиент_начинающийся_на_60_линии_градиента", 120, 120)}}</p>
+
+<h3 id="Градиент_с_многопозиционными_остановками_цвета">Градиент с многопозиционными остановками цвета</h3>
+
+<p>Этот пример использует многопозиционные остановки цвета, и со смежными цветами, имеющими те же точки остановки цвета, создаёт полосатый эффект.</p>
+
+<div class="hidden">
+<pre class="brush: css">body {
+ width: 100vw;
+ height: 100vh;
+}</pre>
+</div>
+
+<pre class="brush: css">body {
+ background: linear-gradient(to right,
+ red 20%, orange 20% 40%, yellow 40% 60%, green 60% 80%, blue 80%);
+}</pre>
+
+<p>{{EmbedLiveSample("Градиент_с_многопозиционными_остановками_цвета", 120, 120)}}</p>
+
+<div class="note">
+<p><strong>Примечание:</strong> Больше примеров смотрите на странице <a href="/en-US/docs/Web/CSS/CSS_Images/Using_CSS_gradients">Использование CSS-градиентов</a>.</p>
+</div>
+
+<h2 id="Спецификации">Спецификации</h2>
+
+<table class="standard-table">
+ <thead>
+ <tr>
+ <th scope="col">Спецификация</th>
+ <th scope="col">Статус</th>
+ <th scope="col">Комментарий</th>
+ </tr>
+ </thead>
+ <tbody>
+ <tr>
+ <td>{{SpecName('CSS4 Images', '#color-stop-syntax', 'Gradient Color-Stops')}}</td>
+ <td>{{Spec2('CSS4 Images')}}</td>
+ <td>Добавлены подсказки по переходам</td>
+ </tr>
+ <tr>
+ <td>{{SpecName('CSS3 Images', '#linear-gradients', 'linear-gradient()')}}</td>
+ <td>{{Spec2('CSS3 Images')}}</td>
+ <td>Первоначальное определение</td>
+ </tr>
+ </tbody>
+</table>
+
+<h2 id="Совместимость_с_браузерами">Совместимость с браузерами</h2>
+
+
+
+<div>{{Compat("css.types.image.gradient.linear-gradient")}}</div>
+
+<h2 id="Смотрите_также">Смотрите также</h2>
+
+<ul>
+ <li><a href="/en-US/docs/Web/CSS/CSS_Images/Using_CSS_gradients">Использование CSS-градиентов</a></li>
+ <li>Другие градиентные функции: {{CSSxRef("repeating-linear-gradient")}}, {{CSSxRef("radial-gradient")}}, {{CSSxRef("repeating-radial-gradient")}}, {{CSSxRef("conic-gradient")}}, {{CSSxRef("repeating-conic-gradient")}}</li>
+ <li>{{CSSxRef("&lt;image&gt;")}}</li>
+ <li>{{cssxref("element()")}}</li>
+ <li>{{cssxref("_image","image()")}}</li>
+ <li>{{cssxref("image-set","image-set()")}}</li>
+ <li>{{cssxref("cross-fade")}}</li>
+</ul>