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

Переделка представления кода, примесей модульных сеток

parent db58d26a
...@@ -3,12 +3,6 @@ ...@@ -3,12 +3,6 @@
<pre class="code"> <pre class="code">
<code class="code__syntax css"> <code class="code__syntax css">
<span class="code__line">/* Родитель: */</span> <span class="code__line">/* Родитель: */</span>
<span class="code__line">.block-name {</span>
<span class="code__line"> display: flex;</span>
<span class="code__line"> flex-wrap: wrap;</span>
<span class="code__line"> margin-left: -1.5rem;</span>
<span class="code__line"> margin-right: -1.5rem;</span>
<span class="code__line">}</span>
</code> </code>
</pre> </pre>
......
...@@ -3248,6 +3248,7 @@ ...@@ -3248,6 +3248,7 @@
<p>БЭМ-блоки <code>.row</code>, <code>.col-[ID]-[COL]</code>, <code>.col-[ID]-offset-[COL]</code></p> <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>
<p>Промежутки ячеек модульной сетки сделаны с помощью <code>padding</code> (<code>@grid-gutter-width / 2</code>), у родителя модульной сетки есть отрицательные <code>margin</code> (<code>@grid-gutter-width / -2</code>) для выравнивания левой границы контентных областей ячеек сетки по левым границам блоков вне сетки.</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;">
...@@ -3348,186 +3349,270 @@ ...@@ -3348,186 +3349,270 @@
<li>Отсутствие в стилевом файле лишних классов.</li> <li>Отсутствие в стилевом файле лишних классов.</li>
</ul> </ul>
<p>Абсолютно любая сетка на любой ширине. Бесплатно без регистрации и СМС.</p> <p>Абсолютно любая сетка на любой ширине. Бесплатно без регистрации и СМС.</p>
<p class="alert alert--danger">Примеси генерируют много медиа-выражений! Обязательно используйте конкатенатор медиа-выражений, к примеру, <strong><a href="https://github.com/hail2u/node-css-mqpacker">этот</a></strong> (написанный с PostCSS).</p>
<h3>Работа с примесями</h3>
<p>TODO</p>
<h3>Варианты использования</h3>
<h4>Сетка с промежутками по умолчанию на любых вьюпортах и разным количеством колонок на ячейку</h4>
<p>Если промежуток отличается от 3rem (30px по умолчанию), нужно пойти и поменять значение переменной <code>@grid-gutter-width</code>.</p>
<pre class="code">
<code class="code__syntax less">
<span class="code__line">.block-name {</span>
<span class="code__line"> .row(); // На всех вьюпортах промежуток по умолчанию (из переменной @grid-gutter-width)</span>
<span class="code__line"> </span>
<span class="code__line"> &__element {</span>
<span class="code__line"> .col(xs, 6); // Изначально 6/12 (50%), на SM будет то же самое, т.к. нет вызова .col(sm, ЧИСЛО);</span>
<span class="code__line"> .col(md, 4); // Начиная с MD — 4/12 (33.33333333%)</span>
<span class="code__line"> .col(lg, 3); // Начиная с LG — 3/12 (25%), на XL и XXL будет то же самое</span>
<span class="code__line"> }</span>
<span class="code__line">}</span>
</code>
</pre>
<h4>Сетка, у которой на XS изменён промежуток (1rem), а на SM и далее — промежуток по умолчанию</h4>
<pre class="code">
<code class="code__syntax less">
<span class="code__line">.block-name {</span>
<span class="code__line"> .row(1rem); // Передаём примеси промежуток для XS (для SM и далее он будет по умолчанию)</span>
<span class="code__line"> </span>
<span class="code__line"> &__element {</span>
<span class="code__line"> .col(xs, 6, @grid-columns, 1rem); // Нужно передать изменённый промежуток колонкам тоже</span>
<span class="code__line"> .col(sm, 4); // Восстановления промежутка по умолчанию</span>
<span class="code__line"> }</span>
<span class="code__line">}</span>
</code>
</pre>
<h4>4. Нужна сетка, у которой на XS промежуток по умолчанию, на SM изменённый, а на MD и далее — по умолчанию</h4>
<pre class="code">
<code class="code__syntax less">
<span class="code__line">.block-name {</span>
<span class="code__line"> .row(@sm-grid-gutter: 1rem); // Для XS опускаем, сразу пишем для SM (вынуждены указать конкретную переменную, поскольку примесь сначала ждет переменную для XS)</span>
<span class="code__line"> // .row(@grid-gutter-width, 1rem); // Полностью аналогично, но с соблюдением очередности переменных при вызове</span>
<span class="code__line"> </span>
<span class="code__line"> &__element {</span>
<span class="code__line"> .col(sm, 6, @grid-columns, 1rem); // Нужно передать изменённый промежуток колонкам тоже</span>
<span class="code__line"> .col(md, 4); // Восстановления промежутка по умолчанию</span>
<span class="code__line"> }</span>
<span class="code__line">}</span>
</code>
</pre>
<h4>5. Нужна сетка, у которой на каждом вьюпорте свой промежуток</h4>
111
<h4>6. Нужна сетка без промежутков на любых вьюпортах</h4>
111
<h4>7. Нужна сетка без промежутков на XS, но с промежутками по умолчанию начиная с SM</h4>
111
<div class="row"> <div class="row">
<div class="col-lg-6"> <div class="col-lg-6">
<pre> <p>Вызов примесей:</p>
<code class="less">.block-name {</code> <pre class="code">
<code class="less"> .row(); // БЭМ-блок — обёртка элементов сетки</code> <code class="code__syntax less">
<code class="less"> </code> <span class="code__line">.block-name {</span>
<code class="less"> &__element {</code> <span class="code__line"> .row(); // БЭМ-блок — обёртка элементов сетки</span>
<code class="less"> // Разные ширины элемента на разных вьюпортах</code> <span class="code__line"> </span>
<code class="less"> .col(xs, 6);</code> <span class="code__line"> &__element {</span>
<code class="less"> .col(sm, 5);</code> <span class="code__line"> // Разные ширины элемента на разных вьюпортах</span>
<code class="less"> .col(md, 4);</code> <span class="code__line"> .col(xs, 6);</span>
<code class="less"> .col(lg, 3);</code> <span class="code__line"> .col(sm, 5);</span>
<code class="less"> .col(xl, 2);</code> <span class="code__line"> .col(md, 4);</span>
<code class="less"> .col(xxl, 1);</code> <span class="code__line"> .col(lg, 3);</span>
<code class="less"> }</code> <span class="code__line"> .col(xl, 2);</span>
<code class="less">}</code> <span class="code__line"> .col(xxl, 1);</span>
<span class="code__line"> }</span>
<span class="code__line">}</span>
</code>
</pre> </pre>
</div> </div>
<div class="col-lg-6"> <div class="col-lg-6">
<pre> <p>Результат (без постпроцессинга):</p>
<code class="css">/* Родитель: */</code> <pre class="code">
<code class="css">.block-name {</code> <code class="code__syntax css">
<code class="css"> display: flex;</code> <span class="code__line">/* Родитель: */</span>
<code class="css"> flex-wrap: wrap;</code> <span class="code__line">.block-name {</span>
<code class="css"> margin-left: -1.5rem;</code> <span class="code__line"> display: flex;</span>
<code class="css"> margin-right: -1.5rem;</code> <span class="code__line"> flex-wrap: wrap;</span>
<code class="css">}</code> <span class="code__line"> margin-left: -1.5rem;</span>
<code class="css">/* Внимание! Все прямые потомки безусловно станут блочными */</code> <span class="code__line"> margin-right: -1.5rem;</span>
<code class="css">.block-name > * {</code> <span class="code__line">}</span>
<code class="css"> display: block;</code> <span class="code__line">/* Внимание! */</span>
<code class="css"> width: 100%;</code> <span class="code__line">/* Все прямые потомки безусловно станут блочными */</span>
<code class="css">}</code> <span class="code__line">.block-name > * {</span>
<code class="css"> </code> <span class="code__line"> display: block;</span>
<code class="css">/* Потомок: */</code> <span class="code__line"> width: 100%;</span>
<code class="css">.block-name__element { /* XS — безусловное срабатывание */</code> <span class="code__line">}</span>
<code class="css"> display: block;</code> <span class="code__line"> </span>
<code class="css"> flex: 0 0 50%;</code> <span class="code__line">/* Потомок: */</span>
<code class="css"> max-width: 50%;</code> <span class="code__line">/* XS — безусловное срабатывание */</span>
<code class="css"> padding-left: 1.5rem;</code> <span class="code__line">.block-name__element { </span>
<code class="css"> padding-right: 1.5rem;</code> <span class="code__line"> display: block;</span>
<code class="css">}</code> <span class="code__line"> flex: 0 0 50%;</span>
<code class="css">@media (min-width: 480px) {</code> <span class="code__line"> max-width: 50%;</span>
<code class="css"> .block-name__element { /* SM — начиная с @screen-sm */</code> <span class="code__line"> padding-left: 1.5rem;</span>
<code class="css"> display: block;</code> <span class="code__line"> padding-right: 1.5rem;</span>
<code class="css"> flex: 0 0 41.66666667%;</code> <span class="code__line">}</span>
<code class="css"> max-width: 41.66666667%;</code> <span class="code__line"> </span>
<code class="css"> padding-left: 1.5rem;</code> <span class="code__line">/* SM — начиная с @screen-sm */</span>
<code class="css"> padding-right: 1.5rem;</code> <span class="code__line">@media (min-width: 480px) {</span>
<code class="css"> }</code> <span class="code__line"> .block-name__element { </span>
<code class="css">}</code> <span class="code__line"> display: block;</span>
<code class="css">@media (min-width: 768px) {</code> <span class="code__line"> flex: 0 0 41.66666667%;</span>
<code class="css"> .block-name__element { /* MD — начиная с @screen-md */</code> <span class="code__line"> max-width: 41.66666667%;</span>
<code class="css"> display: block;</code> <span class="code__line"> padding-left: 1.5rem;</span>
<code class="css"> flex: 0 0 33.33333333%;</code> <span class="code__line"> padding-right: 1.5rem;</span>
<code class="css"> max-width: 33.33333333%;</code> <span class="code__line"> }</span>
<code class="css"> padding-left: 1.5rem;</code> <span class="code__line">}</span>
<code class="css"> padding-right: 1.5rem;</code> <span class="code__line"> </span>
<code class="css"> }</code> <span class="code__line">/* MD — начиная с @screen-md */</span>
<code class="css">}</code> <span class="code__line">@media (min-width: 768px) {</span>
<code class="css">@media (min-width: 992px) {</code> <span class="code__line"> .block-name__element { </span>
<code class="css"> .block-name__element { /* LG — начиная с @screen-lg */</code> <span class="code__line"> display: block;</span>
<code class="css"> display: block;</code> <span class="code__line"> flex: 0 0 33.33333333%;</span>
<code class="css"> flex: 0 0 25%;</code> <span class="code__line"> max-width: 33.33333333%;</span>
<code class="css"> max-width: 25%;</code> <span class="code__line"> padding-left: 1.5rem;</span>
<code class="css"> padding-left: 1.5rem;</code> <span class="code__line"> padding-right: 1.5rem;</span>
<code class="css"> padding-right: 1.5rem;</code> <span class="code__line"> }</span>
<code class="css"> }</code> <span class="code__line">}</span>
<code class="css">}</code> <span class="code__line"> </span>
<code class="css">@media (min-width: 1200px) {</code> <span class="code__line">/* LG — начиная с @screen-lg */</span>
<code class="css"> .block-name__element { /* XL — начиная с @screen-xl */</code> <span class="code__line">@media (min-width: 992px) {</span>
<code class="css"> display: block;</code> <span class="code__line"> .block-name__element { </span>
<code class="css"> flex: 0 0 16.66666667%;</code> <span class="code__line"> display: block;</span>
<code class="css"> max-width: 16.66666667%;</code> <span class="code__line"> flex: 0 0 25%;</span>
<code class="css"> padding-left: 1.5rem;</code> <span class="code__line"> max-width: 25%;</span>
<code class="css"> padding-right: 1.5rem;</code> <span class="code__line"> padding-left: 1.5rem;</span>
<code class="css"> }</code> <span class="code__line"> padding-right: 1.5rem;</span>
<code class="css">}</code> <span class="code__line"> }</span>
<code class="css">@media (min-width: 1800px) {</code> <span class="code__line">}</span>
<code class="css"> .block-name__element { /* XXL — начиная с @screen-xxl */</code> <span class="code__line"> </span>
<code class="css"> display: block;</code> <span class="code__line">/* XL — начиная с @screen-xl */</span>
<code class="css"> flex: 0 0 8.33333333%;</code> <span class="code__line">@media (min-width: 1200px) {</span>
<code class="css"> max-width: 8.33333333%;</code> <span class="code__line"> .block-name__element { </span>
<code class="css"> padding-left: 1.5rem;</code> <span class="code__line"> display: block;</span>
<code class="css"> padding-right: 1.5rem;</code> <span class="code__line"> flex: 0 0 16.66666667%;</span>
<code class="css"> }</code> <span class="code__line"> max-width: 16.66666667%;</span>
<code class="css">}</code> <span class="code__line"> padding-left: 1.5rem;</span>
<span class="code__line"> padding-right: 1.5rem;</span>
<span class="code__line"> }</span>
<span class="code__line">}</span>
<span class="code__line"> </span>
<span class="code__line">/* XXL — начиная с @screen-xxl */</span>
<span class="code__line">@media (min-width: 1800px) {</span>
<span class="code__line"> .block-name__element { </span>
<span class="code__line"> display: block;</span>
<span class="code__line"> flex: 0 0 8.33333333%;</span>
<span class="code__line"> max-width: 8.33333333%;</span>
<span class="code__line"> padding-left: 1.5rem;</span>
<span class="code__line"> padding-right: 1.5rem;</span>
<span class="code__line"> }</span>
<span class="code__line">}</span>
</code>
</pre> </pre>
</div> </div>
</div> </div>
<div class="row">
<div class="col-lg-6">
<pre>
<code class="less">.block-name {</code>
<code class="less"> // в примесь можно передать ширину промежутка</code>
<code class="less"> .row(10px);</code>
<code class="less"> </code>
<code class="less"> &__first-element {</code>
<code class="less"> // xs-сетка, 6 колонок из @grid-columns (12 по умолч.),</code>
<code class="less"> // промежутки 10px</code>
<code class="less"> .col(xs, 6, @grid-columns, 10px);</code>
<code class="less"> }</code>
<code class="less">}</code>
</pre>
</div>
</div>
<p>Максимально подробный пример:</p> <p>Максимально подробный пример:</p>
<pre>
<code class="less">.root {</code> <pre class="code">
<code class="less"> // При указании переменных подряд имена можно не писать, оставлены для наглядности</code> <code class="code__syntax less">
<code class="less"> // @xs-grid-gutter: 1rem; // XS-ширина: указан промежуток между ячейками сетки</code> <span class="code__line">.root {</span>
<code class="less"> // @sm-grid-gutter: 1.8rem;// SM-ширина: указан промежуток между ячейками сетки</code> <span class="code__line"> // При указании переменных подряд имена можно не писать, оставлены для наглядности</span>
<code class="less"> // @md-grid-gutter: 2rem; // MD-ширина: указан промежуток между ячейками сетки</code> <span class="code__line"> // @xs-grid-gutter: 1rem; // XS-ширина: указан промежуток между ячейками сетки</span>
<code class="less"> // @lg-grid-gutter: 3rem; // LG-ширина: указан промежуток между ячейками сетки</code> <span class="code__line"> // @sm-grid-gutter: 1.8rem;// SM-ширина: указан промежуток между ячейками сетки</span>
<code class="less"> // @xl-grid-gutter: 4rem; // XL-ширина: указан промежуток между ячейками сетки</code> <span class="code__line"> // @md-grid-gutter: 2rem; // MD-ширина: указан промежуток между ячейками сетки</span>
<code class="less"> // @xxl-grid-gutter: 5rem; // XXL-ширина: указан промежуток между ячейками сетки</code> <span class="code__line"> // @lg-grid-gutter: 3rem; // LG-ширина: указан промежуток между ячейками сетки</span>
<code class="less"> // Короткая форма указания промежутков для всех ширин:</code> <span class="code__line"> // @xl-grid-gutter: 4rem; // XL-ширина: указан промежуток между ячейками сетки</span>
<code class="less"> // 1rem; 1.8rem; 2rem; 3rem; 4rem; 5rem</code> <span class="code__line"> // @xxl-grid-gutter: 5rem; // XXL-ширина: указан промежуток между ячейками сетки</span>
<code class="less"> .row(</code> <span class="code__line"> // Короткая форма указания промежутков для всех ширин:</span>
<code class="less"> @xs-grid-gutter: 1rem;</code> <span class="code__line"> // 1rem; 1.8rem; 2rem; 3rem; 4rem; 5rem</span>
<code class="less"> @sm-grid-gutter: 1.8rem;</code> <span class="code__line"> .row(</span>
<code class="less"> @md-grid-gutter: 2rem;</code> <span class="code__line"> @xs-grid-gutter: 1rem;</span>
<code class="less"> @lg-grid-gutter: @grid-gutter-width;</code> <span class="code__line"> @sm-grid-gutter: 1.8rem;</span>
<code class="less"> @xl-grid-gutter: 4rem;</code> <span class="code__line"> @md-grid-gutter: 2rem;</span>
<code class="less"> @xxl-grid-gutter: 5rem;</code> <span class="code__line"> @lg-grid-gutter: @grid-gutter-width;</span>
<code class="less"> );</code> <span class="code__line"> @xl-grid-gutter: 4rem;</span>
<code class="less"> </code> <span class="code__line"> @xxl-grid-gutter: 5rem;</span>
<code class="less"> &__cuprum {</code> <span class="code__line"> );</span>
<code class="less"> // Для каждого вызова примеси указан промежуток между колонками (совпадает с тем, что у соответствующего вызова .row() для родительского элемента)</code> <span class="code__line"> </span>
<code class="less"> .col(xs, 1, 2, 1rem); // XS-ширина, 1 колонка в 2-колоночной сетке</code> <span class="code__line"> &__cuprum {</span>
<code class="less"> .col(sm, 2, 5, 1.8rem); // SM-ширина, 2 колонки в 5-колоночной сетке</code> <span class="code__line"> // Для каждого вызова примеси указан промежуток между колонками (совпадает с тем, что у соответствующего вызова .row() для родительского элемента)</span>
<code class="less"> .col(md, 2, 8, 2rem); // MD-ширина, 2 колонки в 8-колоночной сетке</code> <span class="code__line"> .col(xs, 1, 2, 1rem); // XS-ширина, 1 колонка в 2-колоночной сетке</span>
<code class="less"> .col(lg, 2, @grid-columns, @grid-gutter-width); // LG-ширина, 2 колонки в 12-колоночной сетке (если @grid-columns оставлена по умолчанию)</code> <span class="code__line"> .col(sm, 2, 5, 1.8rem); // SM-ширина, 2 колонки в 5-колоночной сетке</span>
<code class="less"> .col(xl, 3, 10, 4rem); // XL-ширина, 3 колонки в 10-колоночной сетке</code> <span class="code__line"> .col(md, 2, 8, 2rem); // MD-ширина, 2 колонки в 8-колоночной сетке</span>
<code class="less"> }</code> <span class="code__line"> .col(lg, 2, @grid-columns, @grid-gutter-width); // LG-ширина, 2 колонки в 12-колоночной сетке (если @grid-columns оставлена по умолчанию)</span>
<code class="less"> </code> <span class="code__line"> .col(xl, 3, 10, 4rem); // XL-ширина, 3 колонки в 10-колоночной сетке</span>
<code class="less"> &__aurum {</code> <span class="code__line"> }</span>
<code class="less"> .col(xs, 1, 2, 1rem);</code> <span class="code__line"> </span>
<code class="less"> .col(sm, 3, 5, 1.8rem);</code> <span class="code__line"> &__aurum {</span>
<code class="less"> .col(md, 6, 8, 2rem);</code> <span class="code__line"> .col(xs, 1, 2, 1rem);</span>
<code class="less"> .col(lg, 10, @grid-columns, @grid-gutter-width);</code> <span class="code__line"> .col(sm, 3, 5, 1.8rem);</span>
<code class="less"> .col(xl, 7, 10, 4rem);</code> <span class="code__line"> .col(md, 6, 8, 2rem);</span>
<code class="less"> }</code> <span class="code__line"> .col(lg, 10, @grid-columns, @grid-gutter-width);</span>
<code class="less">}</code> <span class="code__line"> .col(xl, 7, 10, 4rem);</span>
<span class="code__line"> }</span>
<span class="code__line">}</span>
</code>
</pre> </pre>
<p>Реальный пример 1:</p> <p>Реальный пример 1:</p>
<pre>
<code class="less">.root {</code> <pre class="code">
<code class="less"> // Промежуток между колонками будет отличаться только на XS-ширине, это первый</code> <code class="code__syntax less">
<code class="less"> // ожидаемый примесью параметр, указываем только его.</code> <span class="code__line">.root {</span>
<code class="less"> .row(1rem);</code> <span class="code__line"> // Промежуток между колонками будет отличаться только на XS-ширине, это первый</span>
<code class="less"> </code> <span class="code__line"> // ожидаемый примесью параметр, указываем только его.</span>
<code class="less"> &__cuprum {</code> <span class="code__line"> .row(1rem);</span>
<code class="less"> .col(xs, 1, 2, 1rem); // 1 колонка из 2, нужно указать измененный для .row() промежуток</code> <span class="code__line"> </span>
<code class="less"> .col(sm, 4); // начиная с SM — 4 колонки из 12 (12 по умолчанию, можно не указывать)</code> <span class="code__line"> &__cuprum {</span>
<code class="less"> .col(md, 3); // начиная с MD — 3 колонки из 12 (12 по умолчанию, можно не указывать)</code> <span class="code__line"> .col(xs, 1, 2, 1rem); // 1 колонка из 2, нужно указать измененный для .row() промежуток</span>
<code class="less"> }</code> <span class="code__line"> .col(sm, 4); // начиная с SM — 4 колонки из 12 (12 по умолчанию, можно не указывать)</span>
<code class="less"> </code> <span class="code__line"> .col(md, 3); // начиная с MD — 3 колонки из 12 (12 по умолчанию, можно не указывать)</span>
<code class="less"> &__aurum {</code> <span class="code__line"> }</span>
<code class="less"> .col(xs, 1, 2, 1rem);</code> <span class="code__line"> </span>
<code class="less"> .col(sm, 8);</code> <span class="code__line"> &__aurum {</span>
<code class="less"> .col(md, 9);</code> <span class="code__line"> .col(xs, 1, 2, 1rem);</span>
<code class="less"> }</code> <span class="code__line"> .col(sm, 8);</span>
<code class="less">}</code> <span class="code__line"> .col(md, 9);</span>
<span class="code__line"> }</span>
<span class="code__line">}</span>
</code>
</pre> </pre>
<p>Реальный пример 2:</p> <p>Реальный пример 2:</p>
<pre>
<code class="less">.root {</code> <pre class="code">
<code class="less"> .row(); // Промежуток везде одинаковый (берется из переменной)</code> <code class="code__syntax less">
<code class="less"> </code> <span class="code__line">.root {</span>
<code class="less"> &__cuprum {</code> <span class="code__line"> .row(); // Промежуток везде одинаковый (берется из переменной)</span>
<code class="less"> // Пока вьюпорт не стал равен или шире MD, блок 100% ширины родителя</code> <span class="code__line"> </span>
<code class="less"> .col(md, 3); // начиная с MD — 3 из 12</code> <span class="code__line"> &__cuprum {</span>
<code class="less"> }</code> <span class="code__line"> // Пока вьюпорт не стал равен или шире MD, блок 100% ширины родителя</span>
<code class="less"> </code> <span class="code__line"> .col(md, 3); // начиная с MD — 3 из 12</span>
<code class="less"> &__aurum {</code> <span class="code__line"> }</span>
<code class="less"> // Пока вьюпорт не стал равен или шире MD, блок 100% ширины родителя</code> <span class="code__line"> </span>
<code class="less"> .col(md, 9); // начиная с MD — 9 из 12</code> <span class="code__line"> &__aurum {</span>
<code class="less"> }</code> <span class="code__line"> // Пока вьюпорт не стал равен или шире MD, блок 100% ширины родителя</span>
<code class="less">}</code> <span class="code__line"> .col(md, 9); // начиная с MD — 9 из 12</span>
<span class="code__line"> }</span>
<span class="code__line">}</span>
</code>
</pre> </pre>
</div> </div>
</section> </section>
......
...@@ -44,7 +44,7 @@ ...@@ -44,7 +44,7 @@
// @xl-grid-gutter: @grid-gutter-width - промежуток между ячейками XL-сетки // @xl-grid-gutter: @grid-gutter-width - промежуток между ячейками XL-сетки
// @xxl-grid-gutter: @grid-gutter-width - промежуток между ячейками XXL-сетки // @xxl-grid-gutter: @grid-gutter-width - промежуток между ячейками XXL-сетки
//------------------------------------------------------------------------------ //------------------------------------------------------------------------------
// Примеры: http://codepen.io/nicothin/pen/obRMgx?editors=1100 // Тестирование: http://codepen.io/nicothin/pen/NNggVx?editors=0100
//------------------------------------------------------------------------------ //------------------------------------------------------------------------------
.row(@xs-grid-gutter: @grid-gutter-width; @sm-grid-gutter: @grid-gutter-width; @md-grid-gutter: @grid-gutter-width; @lg-grid-gutter: @grid-gutter-width; @xl-grid-gutter: @grid-gutter-width; @xxl-grid-gutter: @grid-gutter-width;) { .row(@xs-grid-gutter: @grid-gutter-width; @sm-grid-gutter: @grid-gutter-width; @md-grid-gutter: @grid-gutter-width; @lg-grid-gutter: @grid-gutter-width; @xl-grid-gutter: @grid-gutter-width; @xxl-grid-gutter: @grid-gutter-width;) {
...@@ -54,9 +54,12 @@ ...@@ -54,9 +54,12 @@
& > * { & > * {
display: block; display: block;
width: 100%; width: 100%;
padding-left: (@grid-gutter-width / 2);
padding-right: (@grid-gutter-width / 2);
} }
& when not (@xs-grid-gutter = false) { // Если первая переданная переменная ноль — не выводим margin-ы по умолчанию
& when not (@xs-grid-gutter = 0) {
margin-left: (@xs-grid-gutter / -2); margin-left: (@xs-grid-gutter / -2);
margin-right: (@xs-grid-gutter / -2); margin-right: (@xs-grid-gutter / -2);
} }
...@@ -68,28 +71,28 @@ ...@@ -68,28 +71,28 @@
} }
} }
& when not (@md-grid-gutter = @xs-grid-gutter) { & when not (@md-grid-gutter = @sm-grid-gutter) {
@media (min-width: @screen-md) { @media (min-width: @screen-md) {
margin-left: (@md-grid-gutter / -2); margin-left: (@md-grid-gutter / -2);
margin-right: (@md-grid-gutter / -2); margin-right: (@md-grid-gutter / -2);
} }
} }
& when not (@lg-grid-gutter = @xs-grid-gutter) { & when not (@lg-grid-gutter = @md-grid-gutter) {
@media (min-width: @screen-lg) { @media (min-width: @screen-lg) {
margin-left: (@lg-grid-gutter / -2); margin-left: (@lg-grid-gutter / -2);
margin-right: (@lg-grid-gutter / -2); margin-right: (@lg-grid-gutter / -2);
} }
} }
& when not (@xl-grid-gutter = @xs-grid-gutter) { & when not (@xl-grid-gutter = @lg-grid-gutter) {
@media (min-width: @screen-xl) { @media (min-width: @screen-xl) {
margin-left: (@xl-grid-gutter / -2); margin-left: (@xl-grid-gutter / -2);
margin-right: (@xl-grid-gutter / -2); margin-right: (@xl-grid-gutter / -2);
} }
} }
& when not (@xxl-grid-gutter = @xs-grid-gutter) { & when not (@xxl-grid-gutter = @xl-grid-gutter) {
@media (min-width: @screen-xxl) { @media (min-width: @screen-xxl) {
margin-left: (@xxl-grid-gutter / -2); margin-left: (@xxl-grid-gutter / -2);
margin-right: (@xxl-grid-gutter / -2); margin-right: (@xxl-grid-gutter / -2);
......
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