Делаем сетку из миксинов - PullRequest
0 голосов
/ 29 ноября 2018

Я нашел и немного изменил код, чтобы я мог его использовать, но мне не хватает одной вещи.

$map: (1025: 12,768: 6 ,320: 1);

@each $point , $columns in $map {
  @if $point == 320 {
    @for $i from 1 through $columns {
      @media (max-width: $point + px) {
        $equ: 100% / $i;

        .col-#{$i}-m {
          width: $equ;
        }
      }
    }
  }@else if $point == 1025 {
    @for $i from 1 through $columns {
      @media (min-width: $point + px) {
        $equ: 100% / $i;

        .col-#{$columns} {
          width: $equ;
        }

        .offset-#{$i} {
          margin-left: $equ;
        }
      }
    }
  }@else if $point == 768 {
    @for $i from 1 through $columns {
      @media (min-width: $point + px) and (max-width: 1024px) {
        $equ: 100% / $i;

        .col-#{$columns}-t {
          width: $equ;
        }

        .offset-#{$i}-t {
          margin-left: $equ;
        }
      }
    }
  }
}

Это моя сетка.Я не могу использовать бутстрап, поэтому я сделал свой собственный.Из этого я получаю этот CSS.Я вставлю CSS для настольного просмотра, потому что они работают по тому же принципу.

@media (min-width: 1025px) {
  .col-1 {
    width: 100%; }
  .offset-1 {
    margin-left: 100%; } }

@media (min-width: 1025px) {
  .col-2 {
    width: 50%; }
  .offset-2 {
    margin-left: 50%; } }

@media (min-width: 1025px) {
  .col-3 {
    width: 33.33333%; }
  .offset-3 {
    margin-left: 33.33333%; } }

@media (min-width: 1025px) {
  .col-4 {
    width: 25%; }
  .offset-4 {
    margin-left: 25%; } }

@media (min-width: 1025px) {
  .col-5 {
    width: 20%; }
  .offset-5 {
    margin-left: 20%; } }

@media (min-width: 1025px) {
  .col-6 {
    width: 16.66667%; }
  .offset-6 {
    margin-left: 16.66667%; } }

@media (min-width: 1025px) {
  .col-7 {
    width: 14.28571%; }
  .offset-7 {
    margin-left: 14.28571%; } }

@media (min-width: 1025px) {
  .col-8 {
    width: 12.5%; }
  .offset-8 {
    margin-left: 12.5%; } }

@media (min-width: 1025px) {
  .col-9 {
    width: 11.11111%; }
  .offset-9 {
    margin-left: 11.11111%; } }

@media (min-width: 1025px) {
  .col-10 {
    width: 10%; }
  .offset-10 {
    margin-left: 10%; } }

@media (min-width: 1025px) {
  .col-11 {
    width: 9.09091%; }
  .offset-11 {
    margin-left: 9.09091%; } }

@media (min-width: 1025px) {
  .col-12 {
    width: 8.33333%; }
  .offset-12 {
    margin-left: 8.33333%; } }

Мне нужно, чтобы вывод был обратным.Например, col-1 должен быть width: 8.33333%; или col-12 должен быть width: 100%;.По сути, мне нужно поменять числа, но как бы я ни старался, всегда одно и то же ..

Ответы [ 2 ]

0 голосов
/ 30 ноября 2018

После того, как @Oliver Orchard дал мне подсказку, мне удалось решить эту проблему.Вот код:

@else if $point == 1025 {
    @for $i from 1 through $columns {
      @media (min-width: $point + px) {
        $equ: 100% / ($columns)*$i;

        .col-#{$i} {
          width: $equ;
        }

        .offset-#{$i} {
          margin-left: $equ;
        }
      }
    }
  }

Спасибо за помощь!

0 голосов
/ 29 ноября 2018

Когда вы сделаете это:

$equ: 100% / $i;

.col-#{$i}-m {
     width: $equ;
}

подумайте о том, к чему приведет цикл. Сначала я получу 1, 100%, деленное на 1, равно 100%.Где, как вы хотели бы, чтобы было 100% / число протоколов.

Примерно так:

$equ: 100% / ($columns + 1 - $i);

.col-#{$i}-m {
     width: $equ;
}
...