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

如何使用Susy:超强大的Sass网格相关推荐

  1. 超强大NLP标注工具——Prodigy

    大家好,我是对白. 今天给大家介绍一个超强大的NLP标注工具Prodigy,不仅可以应用在实体关系抽取和文本分类等NLP任务上,还可以应用到CV和音视频任务中,来源:知乎@沉默的路人甲. 一.Prod ...

  2. 超参数优化(网格搜索和贝叶斯优化)

    超参数优化 1 超参数优化 1.1 网格搜索类 1.1.1 枚举网格搜索 1.1.2 随机网格搜索 1.1.3 对半网格搜索(Halving Grid Search) 1.2 贝叶斯超参数优化(推荐) ...

  3. python做大屏数据可视化_超强大!Python 可视化这款大屏就够了!

    对于从事数据领域的小伙伴来说,当需要阐述自己观点.展示项目成果时,我们需要在最短时间内让别人知道你的想法.我相信单调乏味的语言很难让别人快速理解.最直接有效的方式就是将数据进行可视化展现. 提到数据可 ...

  4. 超参数优化:网格搜索法

    文章目录 网格搜索法在机器学习和深度学习中的使用 1.项目简介 2.机器学习案例 2.1导入相关库 2.2导入数据 2.3拆分数据集 2.4网格搜索法 2.5使用最优参数重新训练模型 3.深度学习案例 ...

  5. big_screen,一款超强大的Python 可视化大屏!

    对于从事数据领域的小伙伴来说,当需要阐述自己观点.展示项目成果时,我们需要在最短时间内让别人知道你的想法.我相信单调乏味的语言很难让别人快速理解.最直接有效的方式就是将数据如上图所示这样,进行可视化展 ...

  6. ZEGO 后台超能力|服务网格的落地探索和实践

    ​​​​​​​ 服务网格把微服务治理能力下沉到基础设施层,可独立升级,支持异构语言接入,是云原生体系下重要的微服务技术,被广泛认为有较好的发展前景. 近几年,国内各大公司在大规模生产中落地服务网格,即 ...

  7. [导入][转载]超强大的jquery formValidator

    jQuery formValidator表单验证插件开源了!!含API帮助.源码.示例 升级记录 2.0 这次又做了一次比较大的调整:增加了FunctionValidator这种校验方式,现在你可以调 ...

  8. 超强大的dnsmasq及hosts全自动脚本扶墙去广告详细教程

    http://www.right.com.cn/forum/forum.php?mod=viewthread&tid=217335&highlight=%C8%A5%B9%E3%B8% ...

  9. Dashy: 一款功能超强大,颜值爆表的可定制专属导航页工具

    公众号关注 「奇妙的 Linux 世界」 设为「星标」,每天带你玩转 Linux ! Dashy 是一个开源的自托管的导航页配置服务,具有易于使用的可视化编辑器.状态检查.小工具和主题等功能.你可以将 ...

最新文章

  1. C++_member template成员模板
  2. day16——函数式编程和内置函数
  3. 信息系统项目管理知识--项目风险管理
  4. 抽象类和接口设计_如何设计类和接口
  5. 算法笔记 -- 离散化
  6. block在美团iOS的实践
  7. leetcode - 56. 合并区间
  8. 美国防部DARPA发起地下空间挑战赛提供3百万美元巨奖
  9. AVI教程转成SWF
  10. 电力系统微型计算机继电保护2018,2018年4月高等教育自学考试电力系统微型计算机继电保护试题及答案.docx...
  11. U盘文件系统损坏恢复
  12. erlang的逗号和分号和句号区别
  13. java图片打包下载_java 批量下载图片,批量打包文件并下载
  14. leetcode-017-297. 二叉树的序列化与反序列化
  15. 射影几何----用交比证明著名的梅涅劳斯定理
  16. Intel-4004微处理器(MCS-4微机)
  17. 2010浙大报录比及分数
  18. 端午节祝福的html,端午节祝福语
  19. windows下更改文件创建修改访问时间
  20. 如何删除 字符串中的 emoji 表情符号

热门文章

  1. ARMA模型时间序列分析全流程(附python代码)
  2. Android:进程运行中被收回权限
  3. supesite首页模板标签调用
  4. 全球11大即将IPO科技公司:人人网土豆网上榜
  5. 直播源列表转换php,TeleList(直播源列表转换软件)V2.3.11 正式版
  6. mac 下窗口管理器与win的软件名称
  7. 关于opencv读取摄像头1080P的测试
  8. 系统资源不足,无法完成请求的服务
  9. 脆弱的GPS系统--摘抄《环球科学》
  10. DirectX12(D3D12)基础教程(十七)——让小姐姐翩翩起舞(3D骨骼动画渲染【2】)