html - 使用 mixins 制作网格

标签 html css sass scss-mixins

我找到并稍微更改了一段代码以便我可以使用它,但我遗漏了一件事。

$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;
        }
      }
    }
  }
}

这是我的网格。我不能使用 bootstrap,所以我自己做了。从这里,我得到了这个 css。我将粘贴桌面 View 的 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%; 。基本上,我需要反转数字,但无论我如何尝试,总是一样的..

最佳答案

当你这样做时:

$equ: 100% / $i;

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

想想这个循环会产生什么结果,首先i会是1,100%除以1就是100%。你希望其中一个是 100%/numberofcols。

像这样:

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

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

关于html - 使用 mixins 制作网格,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53542520/

相关文章:

javascript - 使用 JS 的水平视差滚动

css - 如何更改 SASS 输出样式以便在每个结束花括号后换行?

html - 用于填充内容容器的侧面导航栏

javascript - 如何为数组中数据表同一列中的每一行提供不同的图标

javascript - 绝对正方形的响应网格

css - 在子元素上使用 % 宽度(但要使百分比基于前一个/外部父元素)

css - scss 向后兼容 less 吗?

javascript - 如何使用 Javascript 获取 POST 请求填充的元素的值?

javascript - 移动触摸中未显示子菜单

html - 为什么我的页眉比预期的要高?