1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
|
---
title: box-shadow
slug: Web/CSS/box-shadow
tags:
- CSS
- CSS-свойства
- CSS стили
- HTML цвета
- Стили
- тени
translation_of: Web/CSS/box-shadow
---
<div>{{CSSRef}}</div>
<p><span class="seoSummary">CSS-свойство <strong><code>box-shadow</code></strong> позволяет добавлять элементу одну или несколько теней, указывая их параметры через запятую.</span> Свойство тени представляет собой описанные смещения по x и y от элемента, радиус размытия и его радиус, а также цвет.</p>
<div>{{EmbedInteractiveExample("pages/css/box-shadow.html")}}</div>
<p>Свойство <code>box-shadow</code> позволяет вам задать тень для почти любого элемента. Если элементу задано свойство {{cssxref("border-radius")}}, то тень также будет с закруглёнными углами. Расположение теней по оси z будет такое же, как и при применении свойства <a href="/ru/CSS/text-shadow">text-shadow</a> (первая тень будет впереди остальных).</p>
<p><a href="/ru/docs/Web/CSS/CSS_Box_Model/Box-shadow_generator">Генератор box-shadow generator</a> - интерактивный инструмент, позволяющий вам генерировать <code>box-shadow</code>.</p>
<h2 id="Синтаксис">Синтаксис</h2>
<pre class="brush: css no-line-numbers">/* offset-x | offset-y | color */
box-shadow: 60px -16px teal;
/* offset-x | offset-y | blur-radius | color */
box-shadow: 10px 5px 5px black;
/* offset-x | offset-y | blur-radius | spread-radius | color */
box-shadow: 2px 2px 2px 1px rgba(0, 0, 0, 0.2);
/* inset | offset-x | offset-y | color */
box-shadow: inset 5em 1em gold;
/* Any number of shadows, separated by commas */
box-shadow: 3px 3px red, -1em 0 0.4em olive;
/* Глобальные ключевые слова */
box-shadow: inherit;
box-shadow: initial;
box-shadow: unset;
</pre>
<p>Чтобы задать одну тень, можно использовать:</p>
<ul>
<li>Два, три и четыре значения <code><a href="/en-US/docs/Web/CSS/length"><length></a></code>.
<ul>
<li>Если задано только два значения, они интерпретируется как <code><a href="#<offset-x> <offset-y>"><offset-x><offset-y></a></code> values.</li>
<li>Если задано третье значение, оно понимается как <code><a href="#<blur-radius>"><blur-radius></a></code>.</li>
<li>Если задано четвёртое значение, оно интерпретируется <code><a href="#<spread-radius>"><spread-radius></a></code>.</li>
</ul>
</li>
<li>Дополнительно, можно задать ключевое слово <code><a href="#inset">inset</a></code>.</li>
<li>Дополнительно, можно задать значение <code><a href="#<color>"><color></a></code>.</li>
</ul>
<p>Чтобы задать несколько теней, перечислите их через запятую.</p>
<h3 id="Значения">Значения</h3>
<dl>
<dt><a id="inset" name="inset"><code>inset</code></a></dt>
<dd>Если ключевое слово <code>inset</code> не указано (по умолчанию), тень будет снаружи элемента (и создаст эффект выпуклости блока).<br>
При наличие ключевого слова <code>inset</code>, тень будет падать внутри блока и создаст эффект вдавленности блока. Inset-тени рисуются в пределах границ элемента (даже прозрачные), поверх фона и за контентом.</dd>
<dt><a id="<offset-x> <offset-y>" name="<offset-x> <offset-y>"><code><offset-x></code> <code><offset-y></code></a></dt>
<dd>Существуют 2 значения {{ cssxref("<length>") }}, которые устанавливают смещение тени. <code><offset-x></code> определяет горизонтальное расстояние. Отрицательные значения располагают тень слева от элемента. <code><offset-y></code> определяет вертикальное расстояние. Отрицательные значения располагают тень выше элемента. Посмотрите какие единицы {{ cssxref("<length>") }} можно задать.<br>
Если оба значения равны <code>0</code>, то тень расположится за элементом (и будет отображаться размытие, если <code><blur-radius></code> и/или <code><spread-radius></code> установлены).</dd>
<dt><a id="<blur-radius>" name="<blur-radius>"><code><blur-radius></code></a></dt>
<dd>Это третье значение {{ cssxref("<length>") }}. Чем больше это значение, тем больше и светлее размытие. Отрицательные значения не поддерживаются. Если не определено, будет использоваться <code>0</code> (резкий край тени). Спецификация не содержит в себе точного алгоритма расчёта размытости теней, однако, в ней указано следующее:</dd>
<dd>
<blockquote>…for a long, straight shadow edge, this should create a color transition the length of the blur distance that is perpendicular to and centered on the shadow’s edge, and that ranges from the full shadow color at the radius endpoint inside the shadow to fully transparent at the endpoint outside it.</blockquote>
</dd>
<dt><a id="<spread-radius>" name="<spread-radius>"><code><spread-radius></code></a></dt>
<dd>Это четвёртое значение {{ cssxref("<length>") }}. Положительные значения увеличивают тень, отрицательные - сжимают. По умолчанию значение равно <code>0</code> (размер тени равен размеру элемента).</dd>
<dt><a id="<color>" name="<color>"><code><color></code></a></dt>
<dd>Смотрите возможные ключевые слова и нотации для {{cssxref("<color>")}}.<br>
Если не указано, используемый цвет будет зависеть от браузера - обычно будет применено значение свойства {{cssxref("color")}}, но Safari в настоящее время рисует прозрачную тень в этом случае.</dd>
</dl>
<h3 id="Интерполяция">Интерполяция</h3>
<p>Each shadow in the list (treating <code>none</code> as a 0-length list) is interpolated via the color (as color) component, and x, y, blur, and (when appropriate) spread (as length) components. For each shadow, if both input shadows are or are not <code>inset</code>, then the interpolated shadow must match the input shadows in that regard. If any pair of input shadows has one <code>inset</code> and the other not <code>inset</code>, the entire shadow list is uninterpolable. If the lists of shadows have different lengths, then the shorter list is padded at the end with shadows whose color is <code>transparent</code>, all lengths are <code>0</code>, and whose <code>inset</code> (or not) matches the longer list.</p>
<h3 id="Формальный_синтаксис">Формальный синтаксис</h3>
{{csssyntax}}
<h2 id="Примеры">Примеры</h2>
<ul>
<li><a href="http://www.elektronotdienst-nuernberg.de/bugs/box-shadow_inset.html">тест box-shadow</a></li>
<li><a href="http://markusstange.wordpress.com/2009/02/15/fun-with-box-shadows/">примеры и руководство box-shadow</a></li>
<li><a href="https://cssgenerator.org/box-shadow-css-generator.html">CSS Генератор Box Shadow</a></li>
</ul>
<h2 class="cleared" 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('CSS3 Backgrounds', '#box-shadow', 'box-shadow') }}</td>
<td>{{ Spec2('CSS3 Backgrounds') }}</td>
<td>Изначальное определение</td>
</tr>
</tbody>
</table>
<p>{{cssinfo}}</p>
<h2 id="Совместимость_с_браузерами">Совместимость с браузерами</h2>
<p> </p>
<p>{{Compat("css.properties.box-shadow")}}</p>
<p> </p>
<h2 id="Смотрите_также">Смотрите_также</h2>
<ul>
<li>Тип данных {{cssxref("<color>")}}</li>
<li>Другие свойства, относящиеся к цвету: {{cssxref("color")}}, {{cssxref("background-color")}}, {{cssxref("border-color")}}, {{cssxref("outline-color")}}, {{cssxref("text-decoration-color")}}, {{cssxref("text-emphasis-color")}}, {{cssxref("caret-color")}}, and {{cssxref("column-rule-color")}}</li>
<li><a href="/ru/docs/Web/HTML/Applying_color">Задание цвета HTML-элементам с помощью CSS</a></li>
</ul>
|