首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >SASS计算网格柱宽

SASS计算网格柱宽
EN

Stack Overflow用户
提问于 2014-06-10 14:47:57
回答 2查看 2K关注 0票数 0

我编写了这段代码来计算网格系统的列宽:

代码语言:javascript
复制
@mixin calc-width($index, $type) {
  $column-calculation: (100% - ($gutter-width-procent * ($column-count - 1))) / $column-count;
  $column-width: ($column-calculation * $index);
  $gutter: ($gutter-width-procent * ($index - 1));
  @if ($index > 0) {
    @if ($type != 'width') {
      #{$type}: $column-width + $gutter + $gutter-width-procent;
    } @else {
      #{$type}: $column-width + $gutter;
    }
  }
}

我把它称为不同的功能,就像这样:

代码语言:javascript
复制
  @for $index from 1 through $column-count {
    &.size-#{$index} {
      @include calc-width($index, 'width');
    }
  }

与下列变量有关:

代码语言:javascript
复制
$column-count: 12 !default; //12
$row-max-width: 1024;

$gutter-width-px: 15px !default; //In px
$gutter-width-procent: percentage($gutter-width-px / $row-max-width);

我喜欢这个系统。但有一件事似乎不对.

我可以用另一种方式做这一行,然后从100%减法吗?

代码语言:javascript
复制
$column-calculation: (100% - ($gutter-width-procent * ($column-count - 1))) / $column-count;
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2014-06-10 15:52:06

不太确定,这是否解决了您的问题,但我不会创建这样的网格排水沟。如果您使用“方框大小”、父列上的负值和每列的填充,您可以轻松地创建它们。因此,您的(“伪”)-HTML看起来可能是:

代码语言:javascript
复制
.parent
    .column
    .column
    .column

你的CSS是这样的:

代码语言:javascript
复制
.parent {
    margin-left: -GUTTER;
}
.child {
    padding-left: GUTTER;
}

您创建列宽度的SASS函数也可以简化。我制作了一个钢笔,向你展示了一种解决排水沟问题的方法。

这个SASS函数只用于测试,不检查副本(.size1-2 (50%)和.size2-4)和其他东西。

票数 0
EN

Stack Overflow用户

发布于 2014-06-10 15:45:45

我可能在这里搞错了,但是如果你用box-sizing: border-box;和填充来填充你的排水沟,那么你就不用做任何计算了。关于边框这里有一个很棒的帖子。

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

https://stackoverflow.com/questions/24144011

复制
相关文章

相似问题

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