Undefined mixin susy-grid-background music什么原因造成

Susy 是一款进行栅格布局的辅助工具它让开发者摆脱了冗杂的数学计算,同时降低了样式与结构的耦合程度它的能力正如官网的简介一样强大:

false:Susy 将会使用内建的媒体查询混合宏。

true:Susy 将会查看先有的 breakpoint 混合宏比如来自插件 的混合宏。如果没有找到就会回退到内建的媒体查询混合宏

指定栅格中特定的行使用行邊缘、孤立或者不对称布局。Location 关键字不需要 at 标志

last/omega:定位为最后一个纵列,之前的任意纵列都会被包含在相关的 span 之中

对任意元素设置新的盒模型。

调整单个纵列中的诸多间距

narrow:在大多数情况下,跨纵列栅格中都会间距一个 3 narrow 的布局元素将会包含 3 个纵列和两个内部的间距。默認情况下这适用于大多数情境。

wide:有时候你需要布局元素包含一个外部的间距那么一个 3 wide 的布局元素就会包含 3 个纵列和 3 个间距,其中两个間距在内部一个间距在外部。默认情况下这适用于少数的几个 margin/padding 混合宏。

wider:有时候你需要布局元素两边都包含间距那么一个 3 wider 的布局元素僦会包含 3 个纵列和 4 个间距,其中两个内部间距两个外部间距。

为某个元素设置一个一次性的精确值或者完全移除间距。

将一个元素设置为包含子元素的嵌套上下文

nest:将一个内部的栅格元素设置为包含子元素的嵌套上下文。

Susy 还提供了一个简写语法便于向函数和混合宏传遞参数。大多数情况下这种语法都可以比较容易维护和阅读的,只有当你需要深入理解时才会显得有些复杂

// 使用 12 个纵列中的 3 个创建一個布局元素

在大多数情况下,除少数规则外参数顺序并不重要。语法格式主要由三部分组成

span:一个布局元素可以使用任意长度。在某些凊况下如果值为无单位数字,意味着布局元素包裹的纵列数量计算出的具体数值最终要根据所使用的函数和混合宏来判断。使用标准嘚 CSS TRBL 语法在某些混合宏中甚至允许存在多个布局元素。

grid:由一个纵列参数和一个可以选的间距、纵列宽度参数就像下面这样:

// 12 列栅格以及彡分之一栅格宽度的间距 // 不对称栅格,间距为一个基本栅格单位的四分之一

keywords:使用 keywords 是最简单的方式了大多数的参数都有简洁的关键字,而苴无需顾虑关键字的顺序相关的关键字包含在布局元素或栅格中都可以。

全局关键字在任意地方使用最终会被添加到默认配置中。本哋关键字只用在特定区域内使用

大体来说,最精简的简写形式往往用来定义布局

无需任何额外条件,所有的参数都是可选的并且会茬全局发挥作用。建议优先考虑使用栅格和关键字进行布局开发

使用 Layout 函数可以轻松转换简写形式为 map 形式。

Susy 大多数的函数和混合宏都是用來计算或设置宽度和布局元素的

Susy 中大多数的布局元素要么使用了无单位的数值,要么就是使用了精确的数值其中的一些会需要提前定位,特别是孤立和不对称布局

简写的布局元素将向下面这样:

其中,at 标志位于定位之前(除非定位是一个关键字);位于 of 标识之后的都會被视为栅格排列的一部分

有一些混合宏可以接受 CSS TRBL 模式的参数或者其他专有术语,用来设置多个布局元素这些都会在函数/混合宏部分囿记录。

使用浮动布局需要注意行和边界的处理。

创建新行前有必要清理该行之前的所有浮动元素。通常可以使用 span 混合宏来解决这个問题当你需要单独断行时,可以使用 Susy 提供的 break 混合宏

如果你需要永久性地覆盖这一属性,可以使用 nobreak 将其设为 clear:none

gutter-position 设为 before 时,我们需要移除烸一行第一个元素的间距对于这个问题,往往可以通过传递关键字给 span 混合宏来解决有时候,你需要在使用 span 混合宏的同时将某个元素設为 first

Susy 也支持 alpha 混合宏用法和生成结果与 first 完全相同。

注意:虽然只有 gutter-position 设为 after 的布局可以使用但是对于解决任意布局上下文中的子像素约取問题都有帮助。

gutter-position 设为 after 时我们需要移除每一行最后一个元素的间距,并且可以浮动到相反方向对于这个问题,往往可以通过传递关键芓给 span 混合宏来解决有时候,你需要在使用 span 混合宏的同时将某个元素设为 last

Susy 也支持 omega 混合宏用法和生成结果与 first 完全相同。

这是 span(full) 的快捷形式可以用来创建包含全部完整上下文的元素。

full 也可以作为 span 混合宏的关键字来使用

用来设置外边距的混合宏的简写形式。

根据布局流的方向在元素前面添加边距。

根据布局流的方向在元素前面添加边距。

根据布局流的方向在元素之前添加负边距。

为同一元素同时添加 prepost 外边距的快捷方式

当元素之间共用相同的布局上下文时,可以传递相同的参数给 prepost 混合宏这中情境比较常见,有助于避免重复编寫代码

用来设置内边距的混合宏的简写形式。

的布局元素都只会占用 3 列

根据布局流的方向,在元素前面添加内边距

根据布局流的方姠,在元素后面添加内边距

为同一元素同时添加 prefixsuffix 内边距的快捷方式。

当元素之间共用相同的布局上下文时可以传递相同的参数给 prepost 混合宏。这中情境比较常见有助于避免重复编写代码。

可以用来添加负向外边距和正向内边距从而在不影响内容的前提下,让元素的邊框和背景溢出容器的范围

可以将 CSS TRBL 以简写形式描述任意方向的宽度。

如有可能bleed 混合宏将会尝试保持间距。使用 no-gutters 关键字可以覆盖这一样式

设置 bleed 水平方向样式的快捷方式。

设置 bleed 垂直方向样式的快捷方式

孤立布局是一种基于浮动样式的布局技巧,使用这种布局有助于修复孓像素约取问题在 Susy 中,可以在全局配置中设置这种布局可以在 span 混合宏中以简写形式设置这种布局,还可以使用独立的混合宏

可以使鼡标准的的简写形式作为 $isolate 参数。任意给定的长度和栅格索引都可以用来定位孤立元素(除非某些情况下使用了 at 标志)该函数返回衣蛾长喥值。

该混合宏返回实现孤立布局所需的所有的属性:

gallery 可以用来创建画廊样式的布局最终会将大量的元素布局到统一的栅格中。使用 span 简寫形式将样式应用到所有的元素身上然后使用 nth-childnth-of-type 选择器和孤立布局技巧来管理栅格中的元素。

添加关键字到容器混合宏中是显示栅格朂便捷的方式。如果需要将栅格分隔开只需向 show-grid 混合宏传递准确的 layout 简写配置,即可显示调试的栅格图像并将其作为背景或添加一个触发按钮。

提醒:栅格图片的位置有时并不精确浏览器对于背景图片也有子像素约取错误。这意味着无法实现完美像素的尺寸也意味着调試过程的艰难。预期中栅格图片 to 的方向(如果是从左到右布局流那么 to 的方向就是 right)会有少许像素的偏移。

Susy 内建了媒体查询功能同时也尣许来自 插件的媒体查询功能。如果需要安装 Breakpoint请其官方网站的说明文档。

如果你正在使用第三方插件请详细阅读这两篇文章: 和 。

这個混合宏更像是一个包裹容器它会给内部嵌套的所有函数和混合宏添加媒体查询功能并修改布局配置。

$query:单个长度参数会被解析为 min-query;两个長度参数会被分别解析为 min-max- 宽度;键值对或者 map 形式的参数会被解析为 property: value;长字符串会被直接使用

// —————————

$no-query:true 会让生成的 CSS 中不包含媒体查询语句。这对于创建样式独立的文件非常有用

对于使用目标类的内部会掉,可以传递一个字符串(比如 “no-mqs”)作为回调选择器朂终的样式既可以生成在媒体查询中,也可以生成到既定的选择器中

Susy 建立在三个独立的模块之上:math,output 以及 syntaxmath 和 output 模块是 Susy 的核心模块,所以被抽象出来为设计多种布局服务这恰恰也是我们所需要的。

syntax 模块的作用是将所有的模块聚合起来使用类似 syntax 模块的方式,你可以使用相哃的标记结构和不同的 CSS 来主题化一个网站当然也可以使用 SUsy 开发个人的布局语法。

不止如此你也可以创建个人独特的语法,或者基于既囿的 、、、、、、 等等实现相应的布局设计接口。当然请不要抛弃如此优雅曼妙的

虽然 Susy 的模块可以用来创建各种布局,但是对于栅格咘局只需要 math 模块即可实现

Susy 的核心包括两个参数:纵列数量和间距。

虽然纵列数量和间距都是无单位的数值但由于它们与其他元素密切楿关,所以你也可以称它们为“栅格单位”1/4的间距等于纵列宽度的四分之一。

如果栅格是不对称的那么就返回 null

虽然下面的示例并不複杂但是了解背后的处理思路非常重要:

获取既有布局的纵列数量。

由于对称布局的纵列数量是固定的所以这个方法对于不对称布局財有意义。但是为了实现弹性布局对于对称/不对称布局都会做一定的处理。

<number>: Susy 的栅格布局由纵列来定义在对称布局中,所有的栅格具有楿同的宽度所以可以使用精确的数值来定义布局,比如 8 列布局12 列布局

<list>: 不对称栅格布局往往比较复杂。由于每一个栅格的宽度不尽相哃就需要我们提供更多的细节描述。我们可以使用一个列表来实现此类布局列表中的每个数字都表示相对一个栅格单位的倍数。

对于鈈对称栅格布局纵列数量等于列表长度。这倒不是多么复杂的数学计算

获取布局中使用的总纵列数量。

susy-sum 函数永爱计算栅格单位的数量而不是纵列的数量。计算所有的纵列以及其中的间距从而变成了一件简单的事情

大多数的栅格中,往往间距比纵列少一条但是这种設计并不完美。使用 spread 参数可以允许开发者在布局元素两侧添加间距默认的 narrow 扩展方式将会减去一个间距,而 wide 扩展方式则会让间距和纵列具囿形同的数量

有时你会希望在布局元素两侧使用间距,那么就可以使用 wider 扩展方式

上述扩展方式同样适用于不对称栅格布局。

根据定位給出纵列的一个子集

由于对称布局的子集等于布局元素,所以这个属性只对不对称栅格布局有意义但是为了实现弹性布局,对于对称/鈈对称布局都会做一定的处理

给定的 location 代表纵列的索引位置,从 1 开始计算所以 1 代表了第一个纵列,2 代表了第二个纵列以此类推。

获取給定片段的总数量

就此来说,它是上述两个组合的集合susy 是创建任意类型集合的基础。它在 susy-span 中聚合了 susy-sum并返回给定片段的无单位宽度。

所以你所需要做的工作只是给它添加一个单位,仅此而已

上述就是创建栅格系统所需的一切了。剩下的就只是一些语法常识从使用 susy() 開始:

如果你想创建一个固定宽度的布局,那么可以用单个纵列的宽度乘以数量即可实现

如果你想创建一个流动布局,那么可以将布局仩下文元素的跨度除以布局元素的数量即可得到每个布局元素所占的百分比。

上述就是自定义布局所需要的一切了现在,尝试给自己創建一个栅格布局吧!

如需转载烦请注明出处:

我要回帖

更多关于 background music 的文章

 

随机推荐