如何使罗盘垂直节奏输出rem而不是带有px回退的em?

5
我希望做到这一点:http://www.youtube.com/watch?v=ls3Clk-kz3s,但要输出rems(具有px回退),而不是ems。
显然,compass添加了https://github.com/chriseppstein/compass/pull/896,应该可以工作,但我不太明白我需要从http://compass-style.org/reference/compass/typography/vertical_rhythm/中获取什么内容并将其添加到我的 .scss 文件中。
如果只是使用来自https://gist.github.com/ry5n/2026666的mixin代码(即使完全没有使用Compass),可以使用以下代码:
@include set-font-size()

替代方案:

@include adjust-font-size-to()

它可以很好地处理rem值和px备用。

但如果我只是尝试使用Compass,然后继续进行

$font-unit: 1rem;
$relative-font-sizing: false;

它能工作,但没有px回退。

如果有人能提供完整的.scss代码,以便使用Rems实现Vertical Rhythm,我会非常感激。

如果我使用Rems,为什么需要$relative-font-sizing: false?此外,除了像这样将文本放在网格中之外,是否还有其他竞争哲学?你更喜欢哪一个,你的工作流程是什么?

非常感谢您提前的帮助。

1个回答

5

目前,这些对Compass的更新仍在预发布的gem中,相应的文档在compass-style.org上尚未提供(甚至beta.compass-style.org也没有)。要使用新功能,请安装最新的gem(0.13.alpha.4):

gem install compass --pre

新的gem包中,垂直韵律API略有不同,主要在其可配置变量上,详见https://github.com/chriseppstein/compass/pull/896。简而言之,设置基础字体大小和行高,并将新的$rhythm-unit变量设置为rem

$base-font-size: 16px;
$base-line-height: 24px;
$rhythm-unit: 'rem';
$rhythm-unit变量替换了$font-unit,而$relative-font-sizing现在是一个私有的内部变量,您不需要担心它。
在此之后,所有常规的垂直节奏mixin都将输出rem并提供回退(除非您明确设置$rem-with-px-fallback为false)。请注意,API的其余部分保持几乎相同,除了rhythm mixin具有更合理的默认参数。还有一些详细信息在原始拉取请求中进行了说明。
请记住,由于rhythm函数只返回一个值,因此无法提供像素回退。

非常感谢ry5n。为Compass提供了非常需要的功能,还有详细的答案。我自己正在使用CodeKit,所以它可能会在新版本发布时自动更新Compass(你有什么想法?)。但是你最后一句话的意思是说,在新的Compass版本中不会像https://gist.github.com/ry5n/2026666那样有像素回退吗? - Jonathan
当 Compass 0.13 发布时(我不确定何时),您将拥有所有垂直韵律 mixin 的像素回退,例如 adjust-font-size-toleadertrailerleading-border 等等。唯一没有像素回退的是 函数,其中 rhythm() 是我真正使用的唯一一个。由于这些函数仅计算节奏值(而不输出 CSS),因此它们无法提供像素回退。 - ry5n
顺便提一下,可以告诉CodeKit使用本地gem而不是内置的Compass。请参见:http://css-tricks.com/forums/topic/can-you-use-compass-gems-with-codekit/#post-115282http://incident57.com/codekit/help.php#help-compass - ry5n
我的CodeKit现在使用的是Compass版本0.13.alpha.4,但除非我使用pull 896-mixin,否则它仍然无法工作。这是我的.scss文件,它仍然输出ems:@import "compass";$base-font-size: 18px; $base-line-height: 24px; $rhythm-unit: 'rem'; @include establish-baseline;我想知道它是否仍在以某种方式使用旧版Compass?当我在CodeKit上单击About时,它说它现在正在使用预安装版本。 - Jonathan
“@import compass” 会有问题吗? “@import” 应该指向预安装版本还是 CodeKit 使用预安装版本就足够了吗?还是我应该开始一个新的 Compass 项目..? - Jonathan

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接