首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >用混合器制作网格

用混合器制作网格
EN

Stack Overflow用户
提问于 2018-11-29 15:35:59
回答 2查看 44关注 0票数 0

我找到并修改了一个代码,这样我就可以使用它了,但我遗漏了一件事。

代码语言:javascript
复制
$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,因为它们的工作原理相同。

代码语言:javascript
复制
@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%;。基本上,我需要倒转数字,但不管我怎么努力,总是一样的。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2018-11-29 16:16:35

当你这样做时:

代码语言:javascript
复制
$equ: 100% / $i;

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

想想这个循环会产生什么结果。首先,我将1,100%除以1是100%。就像你想要的那样,成为100%的上校。

就像这样:

代码语言:javascript
复制
$equ: 100% / ($columns + 1 - $i);

.col-#{$i}-m {
     width: $equ;
}
票数 2
EN

Stack Overflow用户

发布于 2018-11-30 08:23:59

奥利弗·乌查德给了我一个提示之后,我设法解决了这件事。以下是代码:

代码语言:javascript
复制
@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;
        }
      }
    }
  }

谢谢你帮忙!

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/53542520

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档