Commit 5fde73d8 authored by Nikolay Gromov's avatar Nikolay Gromov

Упорядочил описание модульной сетки

parent 1501d681
...@@ -3937,10 +3937,13 @@ $('#test').on('hidden.nth.dropdown', function () { ...@@ -3937,10 +3937,13 @@ $('#test').on('hidden.nth.dropdown', function () {
<section class="blocks-library__item"> <section class="blocks-library__item" id="grid">
<h2 id="grid">Модульная сетка на flexbox</h2>
<p>Стилизация: БЭМ-блоки <code>.row</code>, <code>.col-[ID]-[COL]</code>, <code>.col-[ID]-offset-[COL]</code></p> <h1 class="blocks-library__item-title">Модульная сетка на flexbox</h1>
<p>БЭМ-блоки <code>.row</code>, <code>.col-[ID]-[COL]</code>, <code>.col-[ID]-offset-[COL]</code></p>
<p>Возможные ID сетки: xs, sm, md, lg, xl, xxl (xxl по умолчанию закомментированы). Вдохновлено Bootstrap 4.</p> <p>Возможные ID сетки: xs, sm, md, lg, xl, xxl (xxl по умолчанию закомментированы). Вдохновлено Bootstrap 4.</p>
<div class="row"> <div class="row">
<div class="col-xs-12 col-sm-6 col-md-4 col-lg-3" style="background: #eceeef; border: 1px solid #B1B1B1;"> <div class="col-xs-12 col-sm-6 col-md-4 col-lg-3" style="background: #eceeef; border: 1px solid #B1B1B1;">
<code>.col-xs-12 .col-sm-6 .col-md-4 .col-lg-3</code> <code>.col-xs-12 .col-sm-6 .col-md-4 .col-lg-3</code>
...@@ -3955,6 +3958,20 @@ $('#test').on('hidden.nth.dropdown', function () { ...@@ -3955,6 +3958,20 @@ $('#test').on('hidden.nth.dropdown', function () {
<code>.col-xs-12 .col-sm-6 .col-md-4 .col-lg-3</code> <code>.col-xs-12 .col-sm-6 .col-md-4 .col-lg-3</code>
</div> </div>
</div> </div>
<div class="blocks-library__code-wrapper">
<span class="blocks-library__code-show-trigger" title="Показать код"><i class="blocks-library__code-icon"></i></span>
<div class="blocks-library__code">
<pre>
<code class="html">&lt;div class=&quot;row&quot;&gt;</code>
<code class="html"> &lt;div class=&quot;col-xs-12 col-sm-6 col-md-4 col-lg-3&quot;&gt;...&lt;/div&gt;</code>
<code class="html"> &lt;div class=&quot;col-xs-12 col-sm-6 col-md-4 col-lg-3&quot;&gt;...&lt;/div&gt;</code>
<code class="html"> &lt;div class=&quot;col-xs-12 col-sm-6 col-md-4 col-lg-3&quot;&gt;...&lt;/div&gt;</code>
<code class="html"> &lt;div class=&quot;col-xs-12 col-sm-6 col-md-4 col-lg-3&quot;&gt;...&lt;/div&gt;</code>
<code class="html">&lt;/div&gt;</code>
</pre>
</div>
</div>
<hr>
<div class="row"> <div class="row">
<div class="col-md-2 col-lg-3" style="background: #eceeef; border: 1px solid #B1B1B1;"> <div class="col-md-2 col-lg-3" style="background: #eceeef; border: 1px solid #B1B1B1;">
<code>.col-md-2 &nbsp;.col-lg-3</code> <code>.col-md-2 &nbsp;.col-lg-3</code>
...@@ -3963,120 +3980,134 @@ $('#test').on('hidden.nth.dropdown', function () { ...@@ -3963,120 +3980,134 @@ $('#test').on('hidden.nth.dropdown', function () {
<code>.col-md-10 &nbsp;.col-md-offset-1 &nbsp;.col-lg-9</code> <code>.col-md-10 &nbsp;.col-md-offset-1 &nbsp;.col-lg-9</code>
</div> </div>
</div> </div>
<h3 id="grid-mixins">LESS-примеси</h3> <div class="blocks-library__code-wrapper">
<span class="blocks-library__code-show-trigger" title="Показать код"><i class="blocks-library__code-icon"></i></span>
<div class="blocks-library__code">
<pre>
<code class="html">&lt;div class=&quot;row&quot;&gt;</code>
<code class="html">&lt;div class=&quot;col-md-2 col-lg-3&quot;&gt;...&lt;/div&gt;</code>
<code class="html">&lt;div class=&quot;col-md-9 col-md-offset-1 col-lg-8&quot;&gt;...&lt;/div&gt;</code>
<code class="html">&lt;/div&gt;</code>
</pre>
</div>
</div>
<div class="blocks-library__sub-item" id="grid-mixins">
<h2 class="blocks-library__sub-item-title">LESS-примеси</h2>
<p class="alert alert--success">Приоритетным является подход, в котором вместо упомянутых классов модульной сетки используются семантические БЭМ-овские классы и LESS-примеси (см. файл с примесями).</p> <p class="alert alert--success">Приоритетным является подход, в котором вместо упомянутых классов модульной сетки используются семантические БЭМ-овские классы и LESS-примеси (см. файл с примесями).</p>
<p>С примесями можно сделать модульную сетку любой колоночности (на разных ширинах может быть разноколоночная сетка), с любым промежутком между ячейками (на разных ширинах могут быть разные промежутки).</p> <p>С примесями можно сделать модульную сетку любой колоночности (на разных ширинах может быть разноколоночная сетка), с любым промежутком между ячейками (на разных ширинах могут быть разные промежутки).</p>
<p class="alert alert--danger">Вызов примеси <code>.col(xs, 12);</code> (возможно, не 12, а какое-то своё кол-во колонок) обязателен для элементов, являющихся прямыми потомками родителя модульной сетки.</p> <p class="alert alert--danger">Вызов примеси <code>.col(xs, 12);</code> (возможно, не 12, а какое-то своё кол-во колонок) обязателен для элементов, являющихся прямыми потомками родителя модульной сетки.</p>
<div class="row"> <div class="row">
<div class="col-lg-6"> <div class="col-lg-6">
<pre> <pre>
.block-name { <code class="less">.block-name {</code>
.row(); // БЭМ-блок — обёртка элементов модульной сетки <code class="less"> .row(); // БЭМ-блок — обёртка элементов модульной сетки</code>
<code class="less"> </code>
&__element { <code class="less"> &__element {</code>
// Разные ширины элемента на разных вьюпортах <code class="less"> // Разные ширины элемента на разных вьюпортах</code>
.col(xs, 6); <code class="less"> .col(xs, 6);</code>
.col(sm, 5); <code class="less"> .col(sm, 5);</code>
.col(md, 4); <code class="less"> .col(md, 4);</code>
.col(lg, 3); <code class="less"> .col(lg, 3);</code>
.col(xl, 2); <code class="less"> .col(xl, 2);</code>
.col(xxl, 1); <code class="less"> .col(xxl, 1);</code>
} <code class="less"> }</code>
} <code class="less">}</code>
</pre> </pre>
</div> </div>
<div class="col-lg-6"> <div class="col-lg-6">
<pre> <pre>
.block-name { <code class="less">.block-name {</code>
// в примесь можно передать ширину промежутка между ячейками <code class="less"> // в примесь можно передать ширину промежутка между ячейками</code>
.row(10px); <code class="less"> .row(10px);</code>
<code class="less"> </code>
&__first-element { <code class="less"> &__first-element {</code>
// xs-сетка, 6 колонок из @grid-columns (12 по умолчанию), <code class="less"> // xs-сетка, 6 колонок из @grid-columns (12 по умолчанию),</code>
// промежутки 10px <code class="less"> // промежутки 10px</code>
.col(xs, 6, @grid-columns, 10px); <code class="less"> .col(xs, 6, @grid-columns, 10px);</code>
} <code class="less"> }</code>
} <code class="less">}</code>
</pre> </pre>
</div> </div>
</div> </div>
<p>Максимально подробный пример:</p> <p>Максимально подробный пример:</p>
<pre> <pre>
.root { <code class="less">.root {</code>
// При указании переменных подряд имена можно не писать, оставлены для наглядности <code class="less"> // При указании переменных подряд имена можно не писать, оставлены для наглядности</code>
// @xs-grid-gutter: 1rem; // XS-ширина: указан промежуток между ячейками сетки <code class="less"> // @xs-grid-gutter: 1rem; // XS-ширина: указан промежуток между ячейками сетки</code>
// @sm-grid-gutter: 1.8rem;// SM-ширина: указан промежуток между ячейками сетки <code class="less"> // @sm-grid-gutter: 1.8rem;// SM-ширина: указан промежуток между ячейками сетки</code>
// @md-grid-gutter: 2rem; // MD-ширина: указан промежуток между ячейками сетки <code class="less"> // @md-grid-gutter: 2rem; // MD-ширина: указан промежуток между ячейками сетки</code>
// @lg-grid-gutter: 3rem; // LG-ширина: указан промежуток между ячейками сетки <code class="less"> // @lg-grid-gutter: 3rem; // LG-ширина: указан промежуток между ячейками сетки</code>
// @xl-grid-gutter: 4rem; // XL-ширина: указан промежуток между ячейками сетки <code class="less"> // @xl-grid-gutter: 4rem; // XL-ширина: указан промежуток между ячейками сетки</code>
// @xxl-grid-gutter: 5rem; // XXL-ширина: указан промежуток между ячейками сетки <code class="less"> // @xxl-grid-gutter: 5rem; // XXL-ширина: указан промежуток между ячейками сетки</code>
// Короткая форма указания промежутков для всех ширин: <code class="less"> // Короткая форма указания промежутков для всех ширин:</code>
// 1rem; 1.8rem; 2rem; 3rem; 4rem; 5rem <code class="less"> // 1rem; 1.8rem; 2rem; 3rem; 4rem; 5rem</code>
.row( <code class="less"> .row(</code>
@xs-grid-gutter: 1rem; <code class="less"> @xs-grid-gutter: 1rem;</code>
@sm-grid-gutter: 1.8rem; <code class="less"> @sm-grid-gutter: 1.8rem;</code>
@md-grid-gutter: 2rem; <code class="less"> @md-grid-gutter: 2rem;</code>
@lg-grid-gutter: @grid-gutter-width; <code class="less"> @lg-grid-gutter: @grid-gutter-width;</code>
@xl-grid-gutter: 4rem; <code class="less"> @xl-grid-gutter: 4rem;</code>
@xxl-grid-gutter: 5rem; <code class="less"> @xxl-grid-gutter: 5rem;</code>
); <code class="less"> );</code>
<code class="less"> </code>
&__cuprum { <code class="less"> &__cuprum {</code>
// Для каждого вызова примеси указан промежуток между колонками (совпадает с тем, что у соответствующего вызова .row() для родительского элемента) <code class="less"> // Для каждого вызова примеси указан промежуток между колонками (совпадает с тем, что у соответствующего вызова .row() для родительского элемента)</code>
.col(xs, 1, 2, 1rem); // XS-ширина, 1 колонка в 2-колоночной сетке <code class="less"> .col(xs, 1, 2, 1rem); // XS-ширина, 1 колонка в 2-колоночной сетке</code>
.col(sm, 2, 5, 1.8rem); // SM-ширина, 2 колонки в 5-колоночной сетке <code class="less"> .col(sm, 2, 5, 1.8rem); // SM-ширина, 2 колонки в 5-колоночной сетке</code>
.col(md, 2, 8, 2rem); // MD-ширина, 2 колонки в 8-колоночной сетке <code class="less"> .col(md, 2, 8, 2rem); // MD-ширина, 2 колонки в 8-колоночной сетке</code>
.col(lg, 2, @grid-columns, @grid-gutter-width); // LG-ширина, 2 колонки в 12-колоночной сетке (если @grid-columns оставлена по умолчанию) <code class="less"> .col(lg, 2, @grid-columns, @grid-gutter-width); // LG-ширина, 2 колонки в 12-колоночной сетке (если @grid-columns оставлена по умолчанию)</code>
.col(xl, 3, 10, 4rem); // XL-ширина, 3 колонки в 10-колоночной сетке <code class="less"> .col(xl, 3, 10, 4rem); // XL-ширина, 3 колонки в 10-колоночной сетке</code>
} <code class="less"> }</code>
<code class="less"> </code>
&__aurum { <code class="less"> &__aurum {</code>
.col(xs, 1, 2, 1rem); <code class="less"> .col(xs, 1, 2, 1rem);</code>
.col(sm, 3, 5, 1.8rem); <code class="less"> .col(sm, 3, 5, 1.8rem);</code>
.col(md, 6, 8, 2rem); <code class="less"> .col(md, 6, 8, 2rem);</code>
.col(lg, 10, @grid-columns, @grid-gutter-width); <code class="less"> .col(lg, 10, @grid-columns, @grid-gutter-width);</code>
.col(xl, 7, 10, 4rem); <code class="less"> .col(xl, 7, 10, 4rem);</code>
} <code class="less"> }</code>
} <code class="less">}</code>
</pre> </pre>
<p>Реальный пример 1:</p> <p>Реальный пример 1:</p>
<pre> <pre>
.root { <code class="less">.root {</code>
// Промежуток между колонками будет отличаться только на XS-ширине, это первый <code class="less"> // Промежуток между колонками будет отличаться только на XS-ширине, это первый</code>
// ожидаемый примесью параметр, указываем только его. <code class="less"> // ожидаемый примесью параметр, указываем только его.</code>
.row(1rem); <code class="less"> .row(1rem);</code>
<code class="less"> </code>
&__cuprum { <code class="less"> &__cuprum {</code>
.col(xs, 1, 2, 1rem); // 1 из 2, нужно указать измененный для .row() промежуток <code class="less"> .col(xs, 1, 2, 1rem); // 1 колонка из 2, нужно указать измененный для .row() промежуток</code>
.col(sm, 4); // начиная с SM — 4 из 12 (12 по умолчанию, можно не указывать) <code class="less"> .col(sm, 4); // начиная с SM — 4 колонки из 12 (12 по умолчанию, можно не указывать)</code>
.col(md, 3); // начиная с MD — 3 из 12 (12 по умолчанию, можно не указывать) <code class="less"> .col(md, 3); // начиная с MD — 3 колонки из 12 (12 по умолчанию, можно не указывать)</code>
} <code class="less"> }</code>
<code class="less"> </code>
&__aurum { <code class="less"> &__aurum {</code>
.col(xs, 1, 2, 1rem); <code class="less"> .col(xs, 1, 2, 1rem);</code>
.col(sm, 8); <code class="less"> .col(sm, 8);</code>
.col(md, 9); <code class="less"> .col(md, 9);</code>
} <code class="less"> }</code>
} <code class="less">}</code>
</pre> </pre>
<p>Реальный пример 2:</p> <p>Реальный пример 2:</p>
<pre> <pre>
.root { <code class="less">.root {</code>
.row(); // Промежуток везде одинаковый (берется из переменной) <code class="less"> .row(); // Промежуток везде одинаковый (берется из переменной)</code>
<code class="less"> </code>
&__cuprum { <code class="less"> &__cuprum {</code>
// Пока вьюпорт не стал равен или шире MD, блок 100% ширины родителя <code class="less"> // Пока вьюпорт не стал равен или шире MD, блок 100% ширины родителя</code>
.col(xs, 12); // по умолчанию — 12 из 12 (обязательный вызов примеси) <code class="less"> .col(xs, 12); // по умолчанию — 12 из 12 (обязательный вызов примеси)</code>
.col(md, 3); // начиная с MD — 3 из 12 <code class="less"> .col(md, 3); // начиная с MD — 3 из 12</code>
} <code class="less"> }</code>
<code class="less"> </code>
&__aurum { <code class="less"> &__aurum {</code>
// Пока вьюпорт не стал равен или шире MD, блок 100% ширины родителя <code class="less"> // Пока вьюпорт не стал равен или шире MD, блок 100% ширины родителя</code>
.col(xs, 12); // по умолчанию — 12 из 12 (обязательный вызов примеси) <code class="less"> .col(xs, 12); // по умолчанию — 12 из 12 (обязательный вызов примеси)</code>
.col(md, 9); // начиная с MD — 9 из 12 <code class="less"> .col(md, 9); // начиная с MD — 9 из 12</code>
} <code class="less"> }</code>
} <code class="less">}</code>
</pre> </pre>
</div>
</section> </section>
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment