我使用 SIFR 3.0 已经有一段时间了,字体大小似乎从来没有正常工作过。我了解 SIFR 背后最基本的概念。加载页面时会运行 SIFR。它对 HTML 渲染字体的大小进行一些计算,然后将其替换为大致等于该大小的 Flash 电影。因此,您希望设置 HTML 字体的样式以尽可能匹配 SIFR 字体的大小。
在尝试设置这两种字体大小以匹配时,我的问题总是出现。假设我想使用大约 32px 的 Helvetica Neue Lt SIFR 字体。HTML 等价物类似于 Arial Narrow,大约 36 像素,带有一些负的字母间距。所以这就是我要做的。
在 sifr.css 我会写:
@media screen {
.sIFR-active h1 {
visibility: hidden;
z-index: 0 !important;
font-size: 36px;
}
}
太好了,它会获得我需要的默认 HTML 字体。现在我需要更新 flash SIFR 字体大小。所以我进入 sifr-config.js 并编写如下内容:
sIFR.replace(HelveticaNeueThinCond, {
selector: 'h1',
css: '.sIFR-root { color: #762123; font-size: 32px; line-height: 1em; }',
transparent: true
});
所以现在一切都很好。直到我的 h1 文本超过一行。出于某种原因,当文本换行时,它只显示第一行。似乎计算高度错误。这很奇怪,因为我进行了一些测试。我从“sIFR-active h1”中删除了“可见性:隐藏”,以确保 HTML 呈现的文本大小正确。是的,它占用了两条线。但是,当 Flash 替换此文本时,它会为其赋予一行文本的最小高度。奇怪的。
我能找到解决此包装问题的唯一方法是删除“font-size: 32px;” 来自 sifr-config 中的“sIFR.replace(HelveticaNeueThinCond”。我遇到的问题是它继承了 sifr.css 中设置的字体大小。现在的问题是我的 HTML 文本比 SIFR 文本大。所以偶尔我的 HTML 文本将在我的 SIFR 文本留下大空白之前换行。
那么,如何设置两种不同的字体大小(一种用于我的 HTML 文本,一种用于我的 SIFR)而不丢失换行。
我唯一一次能够成功使用 SIFR 字体是当我有一个与网络安全字体非常相似的 SIFR 字体时,它们可以共享相同的 font-size 属性。
谢谢
谢谢马克。如前所述,如果我从 sIFR.replace 中删除字体大小,它将默认使用在 .sIFR-active 中声明的字体大小。我声明两种不同的字体大小是有原因的,我希望 sIFR.replace 的字体大小为 32 像素,而 sIFR-active 的字体大小为 26 像素。通过这种方式,它们尽可能地匹配。有没有办法让你的 flash 字体(sifr.replace)与 HTML 字体(sifr-active)的大小不同?
是否必须让它们具有相同的字体大小?如果这是真的,那没有多大意义。您还能如何微调这两种字体以使它们占用相同的字母间距/行?