今天我读了关于CSS排版和如何建立一个简单的基线网格的文章。我认为这样做可能很有趣,所以我设置了一切,但显然它看起来并不像预期的那样。CSS排版 - 为什么基线网格完全关闭?
这里是全屏小提琴:http://jsfiddle.net/j5Tav/embedded/result/
,及代码:http://jsfiddle.net/j5Tav/
形象化基线我用Baseliner作为一个书签。它使用JavaScript显示一个基线。
正如你可以从我的SCSS代码中看到的,我确定的基准为14px的的字体大小21px:
/* Reset */
* { margin: 0; padding: 0; }
/* Variables */
$bodyFontSize: 14px;
$baseline: 21px; /* 1.5 for 14px */
body {
font-size: $bodyFontSize;
line-height: $baseline;
}
article {
margin: 0 auto;
width: 65%;
}
h1,
h2,
p {
margin-bottom: $baseline;
}
h1 {
font-size: $bodyFontSize * 2;
line-height: $baseline * 2;
}
h2 {
font-size: $bodyFontSize * 1.8;
line-height: $baseline * 1.8;
}
不过,当您使用底线上全屏小提琴和输入21到书签,基线完全关闭。为什么?我计算了什么错误?
听起来就像你遇到舍入不一致(14px * 1.8 = 19.6px)。您是否有特定的原因选择在每个线条高度上指定单位? (请参阅:http://meyerweb.com/eric/thoughts/2006/02/08/unitless-line-heights/和https://developer.mozilla.org/en-US/docs/CSS/line-height) – cimmanon
@cimmanon \t 不,没有具体原因。通常我会这样做,就像你的链接建议 - 没有单位。但有一个变量像$ baseline:21;对我来说似乎很陌生。通常我使用REM与px后备文本大小,但不知何故jsfiddle无法处理。你有一个想法如何避免这些问题?我仍然困难地围绕着基线概念 - 目前我正在以一个div高度的rem值结束。 – Sven
它似乎喜欢你试图使用一个单一的变量,当它更合适的有2:'$ multiplier:1.5'(对于行高)和'$ baseline:$ font-size * $ line-height '(用于填充等)。 – cimmanon