如何制作一个基于 sass 的网格系统,从小到大的列
How to make a sass based grid system with small through large columns
我似乎无法在 Google 上找到我要找的东西。我正在尝试设置一个响应式网格系统,该系统使用像 foundation 或 bootstrap 这样的列。基本上我想取消 column column-med column-lg
但我不明白 column-med 在更改断点时应该如何覆盖 column-lg 。我知道它必须以某种方式成为断点,但我想使用 sass 映射来执行此操作并且没有大量的媒体查询。有人可以在这里为我指明正确的方向吗?
首先你需要为媒体查询创建一个mixin。类似于:
@mixin small {
@media screen and (min-width: 768px) {
@content;
}
}
@mixin medium {
@media screen and (min-width: 1024px) {
@content;
}
}
对任何你想要的尺寸做同样的事情。为了在您的 .scss 文件中调用该 mixin,您需要执行以下操作。
@include small {
//Your css rules here
}
@include small {
//Your css rules here
}
要制作网格,您需要使用 flexbox 来制作列。首先从您的默认列开始。
.col {
flex-grow: 0;
flex-shrink: 0;
max-width: 100%;
padding-left: 10px;
padding-left: 10px;
box-sizing: border-box; //so that the padding is included in the size
}
.col-6 {
flex-basis: 50%;
max-width: 50%;
}
因此,这将为任何大小 window 生成两列,其中 class 'col' 和 'col-6'。此外,如果您不需要排水沟,则不必使用 'col' class。
然后 class 使用媒体查询。
@include small {
.col-sm-6 {
flex-basis: 50%;
max-width: 50%;
}
}
@include medium {
.col-md-4 {
flex-basis: 33.333333%;
max-width: 33.333333%;
}
}
就是这样。只需添加 classes 'col' 和 'col-sm-6' 和 'col-md-4',您将得到一列 0-767 像素宽,两列从 768 到 1023,三列从 1024+。
我似乎无法在 Google 上找到我要找的东西。我正在尝试设置一个响应式网格系统,该系统使用像 foundation 或 bootstrap 这样的列。基本上我想取消 column column-med column-lg
但我不明白 column-med 在更改断点时应该如何覆盖 column-lg 。我知道它必须以某种方式成为断点,但我想使用 sass 映射来执行此操作并且没有大量的媒体查询。有人可以在这里为我指明正确的方向吗?
首先你需要为媒体查询创建一个mixin。类似于:
@mixin small {
@media screen and (min-width: 768px) {
@content;
}
}
@mixin medium {
@media screen and (min-width: 1024px) {
@content;
}
}
对任何你想要的尺寸做同样的事情。为了在您的 .scss 文件中调用该 mixin,您需要执行以下操作。
@include small {
//Your css rules here
}
@include small {
//Your css rules here
}
要制作网格,您需要使用 flexbox 来制作列。首先从您的默认列开始。
.col {
flex-grow: 0;
flex-shrink: 0;
max-width: 100%;
padding-left: 10px;
padding-left: 10px;
box-sizing: border-box; //so that the padding is included in the size
}
.col-6 {
flex-basis: 50%;
max-width: 50%;
}
因此,这将为任何大小 window 生成两列,其中 class 'col' 和 'col-6'。此外,如果您不需要排水沟,则不必使用 'col' class。
然后 class 使用媒体查询。
@include small {
.col-sm-6 {
flex-basis: 50%;
max-width: 50%;
}
}
@include medium {
.col-md-4 {
flex-basis: 33.333333%;
max-width: 33.333333%;
}
}
就是这样。只需添加 classes 'col' 和 'col-sm-6' 和 'col-md-4',您将得到一列 0-767 像素宽,两列从 768 到 1023,三列从 1024+。