2025年如何使用Susy:超强大的Sass网格

如何使用Susy:超强大的Sass网格Susy 是 Sass mixins 的强大集合 用于构建基于网格的布局 Susy 有什么了不起的 在本教程中 我们将向您展示使用 Susy 的基础知识 但以下是需要考虑的专业人士列表 反框架 Susy 不会对您施加任何特定的网格哲学 因此

大家好,我是讯享网,很高兴认识大家。

Susy是Sass mixins的强大集合,用于构建基于网格的布局。

Susy有什么了不起的? 在本教程中,我们将向您展示使用Susy的基础知识,但以下是需要考虑的专业人士列表:

  • 反框架 :Susy不会对您施加任何特定的网格哲学。 因此,您将无需放入CSS文件并直接使用类(就像使用Bootstrap这样的Framework一样); 相反,您将定义自己的网格规则,让Susy替您处理计算。
  • 面向Mixin的方法 :Susy不是框架。 它没有千字节数,因为它不会输出您没有手动定义CSS规则。
  • 强大的配置,明智的默认设置 :Susy在其构建过程中使用配置规则,但不需要您学习一切就可以开始。

这三个简单的职业选手足以让Susy看起来不错。 让我们开始吧!

建立

首先,您需要对Sass足够熟悉,才能编写和编译它。 在撰写本文时,Susy实现了一些Sass功能,而LibSass (基于C的Sass编译器)目前不支持这些功能,因此您需要使用Ruby版本的Sass。 首先安装Sass,然后学习如何使用watch命令 ,这对于与Sass以及Susy一起使用通常是必不可少的。

接下来,您需要在计算机上安装Susy。 由于Susy唯一的依赖项是Sass本身,因此您可以从GitHub下载该项目的zip文件 ,并将Sass文件夹的内容复制到您的项目中。

接下来,您需要将Susy导入到Sass文件中。

@import "susy";

讯享网

假设您所在的目录中包含Sass文件夹的内容。

你好专栏:第一个例子

Susy从根本上讲是一组mixin ,类似于Sass中的函数。 这些混合文件在您的Sass代码内部被调用,当Sass编译器运行时,它将查看Susy文件中的混合文件定义并确定正确的输出。

Susy中最重要的mixin是span mixin,如下所示:

讯享网.content { @include span(20%); }

span mixin还依赖于container mixin,它设置了Susy所谓的“布局上下文”。

.container { @include container(1180px); }

Susy还允许您基于网格集中的预设列数来创建跨度:

讯享网.quarter { @include span(4 of 12); }

Susy的功率远远超出了平均电网,因此比常规电网配置要少。 让我们从一个简单的示例开始:9列布局。

.ninth { @include span(1 of 9); }

萨斯地图

Susy允许您通过$susy变量设置配置。 创建Sass贴图可让您确定有关Susy如何布置跨度的多个首选项。 Susy实现了一个layout混合,该混合输出输出配置图。 这是默认设置,直接从Susy的文档中获取。

讯享网$susy: ( flow: ltr, math: fluid, output: float, gutter-position: after, container: auto, container-position: center, columns: 4, gutters: .25, column-width: false, global-box-sizing: content-box, last-flow: to, debug: ( image: hide, color: rgba(#66f, .25), output: background, toggle: top right, ), use-custom: ( background-image: true, background-options: false, box-sizing: true, clearfix: false, rem: true, ) );

您可以通过将任何特定设置添加到自己的$susy映射中来覆盖它们:

$susy: ( columns: 16, last-flow: from )

通常更改的选项是列数,装订线宽度和output选项。 这些配置选项中的每一个都做不同的事情。

实际例子

在本教程中,我们将不介绍所有配置选项( Susy的文档在解释它们方面做得很好)。 取而代之,让我们来看一些如何使用Susy的实际示例。

跨度和容器混合

在这里,我们可以看到span和container mixins的基本用法:

注意 :为了欣赏全角的列,请查看全屏版本 。


讯享网

此示例有一些注意事项。 我们创建了人为设计的仪表板示例。 我们还提供了一些JavaScript,可从uifaces.com API中获取伪造的用户图像。

Susy特定的部分是列。 在此示例中,我们使用@include span()语法创建了一个响应式布局。 我们还在一些地方使用SCSS的嵌套功能。 请注意,Susy非常适合您的普通媒体查询语法。 我们使用@include container;.stats部分之外创建了一个@include container;

还应注意,在此特定示例中有嵌套的列。 .avatar元素嵌套在另一个Susy列中,这非常.avatar ,因为Susy默认情况下使用流体宽度。

布局简写

接下来,我们可以看到Susy的速记在布局上的用法,该网格的中间列比外面大。

在此示例中,我们使用了一些不同的选项,这些选项对您来说似乎很新。 首先,我们使用Haml创建标记。 Haml是在Ruby之上构建HTML的空白敏感标记替代品。 可以认为它有点像HTML的预处理器。

让我们看看我们的示例创建了什么。

讯享网.brick-list

默认情况下,这将创建一个<div>元素,并为其提供一类brick-list

- 30.times do |i|

该缩进线重复嵌套在同一缩进内的任何内容30次。 这意味着输出的任何内容都将在我们上面使用.brick-list创建的div .brick-list|i| 部分从0开始传递当前索引 ,它是循环的计数。因此,例如,在我们第五次通过循环时, i等于4

讯享网.col %img{src: "http://hhhhold.com/jpeg/700?v=#{i}"}

我们在30.times循环中看到了这一点。 .col创建一个带有col classdiv%img{...}创建一个<img>元素,花括号中的属性传递到该图像中。 我们正在将hhhhold.com用于我们的占位符图像。 这里的语法是Ruby哈希语法,在很多方面与JSON非常相似。

这些行的另一个重要部分是#{} ,它允许您打印出i索引变量(如果您想了解更多信息,这称为插值 , Hugo Giraudel解释了您需要了解的所有内容 )。 我们在URL中使用此变量作为参数,以使加载的图像不尽相同。

Susy网格在此示例中是唯一的。 我们用以下行设置一个网格变量:

$grid: (1 2 5 5 2 1);

该变量将在我们的span mixin调用中传递给Susy,并进行读取以创建具有六列的网格。 第一列的相对宽度为1,第二列的相对宽度为2,第三列的相对宽度为5,依此类推。

然后,我们将在整个示例中利用此网格,将.col div放置在第1、3和5列的起始位置,并使用nth-child CSS规则跨越2列。 如果我们要修改此相同的网格,以使每列具有相同的相对列宽,则看起来像这样。

这是相同的示例,但布局不同。

如您所见,非常规网格是直接完成的任务,Susy使强大的网格控制成为一项令人愉快的任务。

结论

Susy提供了一种更灵活,更自以为是的方式来创建自己的网格布局,而不会强迫您采用一组预定CSS。 由于具有这种灵活性,Susy可以很快地被学习并引入到项目中,而不必完全致力于在您创建的每个CSS声明中都使用它。

无论您确定Susy是否适合您,作为前端开发人员,您至少应该了解可以使用的所有预处理工具。 它们正在成为现代开发人员的关键工具集。

翻译自: https://webdesign.tutsplus.com/tutorials/how-to-use-susy-superpowered-sass-grids--cms-22744

小讯
上一篇 2025-01-13 17:59
下一篇 2025-01-15 08:11

相关推荐

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容,请联系我们,一经查实,本站将立刻删除。
如需转载请保留出处:https://51itzy.com/kjqy/60177.html