aboutsummaryrefslogtreecommitdiff
path: root/files/ru/web/css/calc()/index.html
diff options
context:
space:
mode:
authorPeter Bengtsson <mail@peterbe.com>2020-12-08 14:42:52 -0500
committerPeter Bengtsson <mail@peterbe.com>2020-12-08 14:42:52 -0500
commit074785cea106179cb3305637055ab0a009ca74f2 (patch)
treee6ae371cccd642aa2b67f39752a2cdf1fd4eb040 /files/ru/web/css/calc()/index.html
parentda78a9e329e272dedb2400b79a3bdeebff387d47 (diff)
downloadtranslated-content-074785cea106179cb3305637055ab0a009ca74f2.tar.gz
translated-content-074785cea106179cb3305637055ab0a009ca74f2.tar.bz2
translated-content-074785cea106179cb3305637055ab0a009ca74f2.zip
initial commit
Diffstat (limited to 'files/ru/web/css/calc()/index.html')
-rw-r--r--files/ru/web/css/calc()/index.html210
1 files changed, 210 insertions, 0 deletions
diff --git a/files/ru/web/css/calc()/index.html b/files/ru/web/css/calc()/index.html
new file mode 100644
index 0000000000..6f5b561a35
--- /dev/null
+++ b/files/ru/web/css/calc()/index.html
@@ -0,0 +1,210 @@
+---
+title: Функция calc()
+slug: Web/CSS/calc()
+tags:
+ - css calc
+translation_of: Web/CSS/calc()
+---
+<div>{{CSSRef}}</div>
+
+<p><code>calc()</code> - это функция CSS, которая даёт возможность расчитать значения свойств CSS во время их определения. Она может быть использована везде, где применимы {{cssxref("&lt;length&gt;")}}, {{cssxref("&lt;frequency&gt;")}}, {{cssxref("&lt;angle&gt;")}}, {{cssxref("&lt;time&gt;")}}, {{cssxref("&lt;number&gt;")}}, или {{cssxref("&lt;integer&gt;")}}.</p>
+
+<p>{{EmbedInteractiveExample("pages/css/function-calc.html")}}</p>
+
+<h2 id="Синтаксис">Синтаксис</h2>
+
+<p>Функция <code>calc()</code> принимает в качестве параметра математическое выражение, результат вычисления которого можно использовать как значение CSS свойства. Выражение может включать операторы +, -, *, / <span id="result_box" lang="ru"><span class="hps">с использованием стандартных</span> <span class="hps">правил</span> <span class="hps">приоритета операторов</span></span>:</p>
+
+<dl>
+ <dt><strong>+</strong></dt>
+ <dd>Сложение</dd>
+ <dt><strong>-</strong></dt>
+ <dd>Вычитание.</dd>
+ <dt><strong>*</strong></dt>
+ <dd>Умножение. По крайней мере хоть один из сомножителей должен быть {{cssxref("&lt;number&gt;")}}.</dd>
+ <dt><strong>/</strong></dt>
+ <dd>Деление. Делитель должен быть  {{cssxref("&lt;number&gt;")}}.</dd>
+</dl>
+
+<p>Операнды в expression могут быть различными выражениями {{cssxref("&lt;length&gt;")}}. Если пожелаете, то можете использовать разные единицы измерения для каждого из операндов. Вы также можете использовать скобки, чтобы указать порядок вычисления.</p>
+
+<div class="note"><strong>Внимание:</strong> Деление на ноль выдаст ошибку при парсинге HTML.</div>
+
+<div class="note"><strong>Note:</strong> Операторы + и - всегда должны быть по обеим сторонам отеделены пробелом. Выражение <code>calc(50% -8px)</code> будет интерпретировано как величина в процентах и следующее за ним отрицательное число в пикселях (не верное выражение), в то время как <code>calc(50% - 8px)</code> - правильное выражение, будет интерпретировано как вычитание из процентов длины в пикселях.<br>
+Операторы * и / не требуют отделения от операндов знаком пробела, но это не запрещено и даже приветствуется.</div>
+
+<dl>
+</dl>
+
+<h3 id="Формальный_синтаксис">Формальный синтаксис</h3>
+
+<pre class="syntaxbox notranslate">calc(<em>expression</em>)</pre>
+
+<h2 id="Примеры">Примеры</h2>
+
+<h3 id="Позиционирование_объекта_в_окне_с_помощью_отступа">Позиционирование объекта в окне с помощью отступа</h3>
+
+<p><code>calc()</code> делает простым позиционирование объекта с помощью отступа. В этом примере создается баннер занимающий в ширину все окно с отступами по краям в 40px. </p>
+
+<pre class="brush: css notranslate">.banner {
+ position: absolute;
+ left: 5%; /* для браузеров не поддерживающих calc() */
+ left: calc(40px);
+ width: 90%; /* для браузеров не поддерживающих calc() */
+ width: calc(100% - 80px);
+ border: solid black 1px;
+ box-shadow: 1px 2px;
+ background-color: yellow;
+ padding: 6px;
+ text-align: center;
+}
+</pre>
+
+<pre class="brush: html notranslate">&lt;div class="banner"&gt;Это баннер!&lt;/div&gt;</pre>
+
+<p>{{ EmbedLiveSample('%D0%9F%D0%BE%D0%B7%D0%B8%D1%86%D0%B8%D0%BE%D0%BD%D0%B8%D1%80%D0%BE%D0%B2%D0%B0%D0%BD%D0%B8%D0%B5_%D0%BE%D0%B1%D1%8A%D0%B5%D0%BA%D1%82%D0%B0_%D0%B2_%D0%BE%D0%BA%D0%BD%D0%B5_%D1%81_%D0%BF%D0%BE%D0%BC%D0%BE%D1%89%D1%8C%D1%8E_%D0%BE%D1%82%D1%81%D1%82%D1%83%D0%BF%D0%B0', '100%', '60') }}</p>
+
+<h3 id="Автоматическое_изменение_размера_формы_ввода_для_соответствия_размеру_контейнера">Автоматическое изменение размера формы ввода для соответствия размеру контейнера</h3>
+
+<p>В следующем случае <code>calc()</code> помогает обеспечить не выпадание полей формы за края блока, задав отступ.</p>
+
+<p>Давайте посмотрим некоторый код CSS:</p>
+
+<pre class="brush: css notranslate">input {
+ padding: 2px;
+ display: block;
+ width: 98%; /* для браузеров, не поддерживающих calc() */
+ width: calc(100% - 1em);
+}
+
+#formbox {
+ width: 130px; /* для браузеров, не поддерживающих calc() */
+ width: calc(100% / 6);
+ border: 1px solid black;
+ padding: 4px;
+}
+</pre>
+
+<p>Здесь ширина формы становится 1/6 от ширины окна. Затем, чтобы задать  размер полей, мы вновь используем функцию <code>calc()</code>, которая вычитает 1em из ширины блока. Теперь применим этот CSS к следущему HTML-коду:</p>
+
+<pre class="brush: html notranslate">&lt;form&gt;
+ &lt;div id="formbox"&gt;
+ &lt;label&gt;Type something:&lt;/label&gt;
+ &lt;input type="text"&gt;
+ &lt;/div&gt;
+&lt;/form&gt;
+</pre>
+
+<p>{{ EmbedLiveSample('%D0%90%D0%B2%D1%82%D0%BE%D0%BC%D0%B0%D1%82%D0%B8%D1%87%D0%B5%D1%81%D0%BA%D0%BE%D0%B5_%D0%B8%D0%B7%D0%BC%D0%B5%D0%BD%D0%B5%D0%BD%D0%B8%D0%B5_%D1%80%D0%B0%D0%B7%D0%BC%D0%B5%D1%80%D0%B0_%D1%84%D0%BE%D1%80%D0%BC%D1%8B_%D0%B2%D0%B2%D0%BE%D0%B4%D0%B0_%D0%B4%D0%BB%D1%8F_%D1%81%D0%BE%D0%BE%D1%82%D0%B2%D0%B5%D1%82%D1%81%D1%82%D0%B2%D0%B8%D1%8F_%D1%80%D0%B0%D0%B7%D0%BC%D0%B5%D1%80%D1%83_%D0%BA%D0%BE%D0%BD%D1%82%D0%B5%D0%B9%D0%BD%D0%B5%D1%80%D0%B0', '100%', '80') }}</p>
+
+<h3 id="Вложенный_calc_с_CSS_переменными">Вложенный <code>calc()</code> с CSS переменными</h3>
+
+<p>Вы также можете использовать <code>calc()</code> с CSS переменными. Рассмотрим пример кода:</p>
+
+<pre class="notranslate">.foo {
+ --widthA: 100px;
+ --widthB: calc(var(--widthA) / 2);
+ --widthC: calc(var(--widthB) / 2);
+ width: var(--widthC);
+}</pre>
+
+
+
+<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('CSS3 Values', '#calc-notation', 'calc()')}}</td>
+ <td>{{Spec2('CSS3 Values')}}</td>
+ <td></td>
+ </tr>
+ </tbody>
+</table>
+
+<h2 id="Поддержка_браузерами">Поддержка браузерами</h2>
+
+<div>{{CompatibilityTable}}</div>
+
+<div id="compat-desktop">
+<table class="compat-table">
+ <tbody>
+ <tr>
+ <th>Функция</th>
+ <th>Chrome</th>
+ <th>Firefox (Gecko)</th>
+ <th>Internet Explorer</th>
+ <th>Opera</th>
+ <th>Safari (WebKit)</th>
+ </tr>
+ <tr>
+ <td>Базовая поддержка</td>
+ <td>19 (WebKit 536.3) {{property_prefix("-webkit")}}<br>
+ 26</td>
+ <td>{{CompatGeckoDesktop("2")}} {{property_prefix("-moz")}}<br>
+ {{CompatGeckoDesktop("16")}}</td>
+ <td>9</td>
+ <td>-</td>
+ <td>6 {{property_prefix("-webkit")}} (buggy)<br>
+ 7</td>
+ </tr>
+ <tr>
+ <td>On gradients' color stops</td>
+ <td>19 (WebKit 536.3) {{property_prefix("-webkit")}}<br>
+ 27 (maybe 26)</td>
+ <td>{{CompatGeckoDesktop("19")}}</td>
+ <td>9</td>
+ <td>-</td>
+ <td>6 {{property_prefix("-webkit")}} (buggy)<br>
+ 7</td>
+ </tr>
+ </tbody>
+</table>
+</div>
+
+<div id="compat-mobile">
+<table class="compat-table">
+ <tbody>
+ <tr>
+ <th>Функция</th>
+ <th>Android</th>
+ <th>Firefox Mobile (Gecko)</th>
+ <th>IE Mobile</th>
+ <th>Opera Mobile</th>
+ <th>Safari Mobile</th>
+ </tr>
+ <tr>
+ <td>Базовая поддержка</td>
+ <td>&lt;= 2.3.6 not supported</td>
+ <td>{{CompatGeckoMobile("2")}} {{property_prefix("-moz")}}<br>
+ {{CompatGeckoMobile("16")}}</td>
+ <td>{{CompatUnknown}}</td>
+ <td>{{CompatUnknown}}</td>
+ <td>&lt;= IOs 6.1.3 not supported<br>
+ 6 {{property_prefix("-webkit")}}<br>
+ 7</td>
+ </tr>
+ <tr>
+ <td>On gradients' color stops</td>
+ <td>{{CompatUnknown}}</td>
+ <td>{{CompatGeckoMobile("19")}}</td>
+ <td>{{CompatUnknown}}</td>
+ <td>{{CompatUnknown}}</td>
+ <td>{{CompatUnknown}}</td>
+ </tr>
+ </tbody>
+</table>
+</div>
+
+<h2 id="See_also" name="See_also">Смотрите также</h2>
+
+<ul>
+ <li><a href="https://hacks.mozilla.org/2010/06/css3-calc/" title="Firefox 4: CSS3 calc() ✩ Mozilla Hacks – the Web developer blog">Firefox 4: CSS3 calc() ✩ Mozilla Hacks – the Web developer blog</a></li>
+</ul>