到目前为止,我使用的是 Compass 0.12.x,并且我有一个可以工作的 mixin,用于为 Compass Vertical Rhythm 模块切换基线。当我尝试将该 mixin 应用到 Compass v1.0.1 时,两个基线的 line-height 保持不变。简化后的代码如下所示:
@import 'compass';
@mixin use-baseline($new-base-size, $new-line-height) {
// Save the baseline context
$initial-font-size: $base-font-size;
$initial-line-height: $base-line-height;
// Apply the new context
$base-font-size: $new-base-size;
$base-line-height: $new-line-height;
@content;
// Go back to the baseline context
$base-font-size: $initial-font-size;
$base-line-height: $initial-line-height;
}
$vr-base-font-size: 20px;
$vr-base-line-height:28px;
$vr-750-font-size: 26px;
$vr-750-line-height:37px;
$vr-750: $vr-750-font-size $vr-750-line-height;
$base-font-size: $vr-base-font-size;
$base-line-height: $vr-base-line-height;
@include establish-baseline($vr-base-font-size);
@media screen and (max-width: 750px) {
@include use-baseline($vr-750...) {
@include establish-baseline($vr-750-font-size);
}
}
相应的笔是http://codepen.io/rpkoller/pen/lrBHK。Compass 1.0.1 中的结果代码是:
html {
font-size: 125%;
line-height: 1.4em;
}
@media screen and (max-width: 750px) {
html {
font-size: 162.5%;
line-height: 1.4em; }
}
在 Compass 0.12.x 中是
html {
font-size: 125%;
line-height: 1.4em;
}
@media (min-width: 46.875em) {
html {
font-size: 162.5%;
line-height: 1.42308em;
}
那么是什么导致 Compass 1.0.1 返回相同的行高呢?四舍五入是没有意义的,因为如果您输入更多不同的行高值,例如 100 像素和 25 像素,则两个基线的输出仍然相同(请参阅http://codepen.io/rpkoller/pen/ qjdsa)。
更新: 好的,我终于弄清楚了。原来这种行为是由于 Sass 3.4 中引入的变化。您必须相应地更改 use-baseline mixin:
@mixin use-baseline($new-base-size, $new-line-height) {
// Save the baseline context
$initial-font-size: $base-font-size;
$initial-line-height: $base-line-height;
// Apply the new context
$base-font-size: $new-base-size !global;
$base-line-height: $new-line-height !global;
@content;
// Go back to the baseline context
$base-font-size: $initial-font-size;
$base-line-height: $initial-line-height;
}