1

使用 CSS,我使用这一行来设置双语元素的样式:

 font-family:persianFont, englishFont;

persianFont 和 englishFont 都用@font-face. 问题是带有englishFont 的字符会显示得更大一些,因为字体是这样创建的。示例句子将呈现如下:

BIG_ENGLISH_WORDS_small_persian_BIG_ENGLISH_AGAIN...

所以,我的问题是如何使 persianFont 更大一点(使其具有更大的比例),以便以相同的大小正确显示一行波斯语-英语双语句子?这可能吗?还有其他解决方案吗?

提前致谢

4

2 回答 2

2

我建议单独创建一个跨度并增加字体大小作为理想的解决方案。

如果我假设您body的默认font-size值为12px,那么您需要按比例增加跨度大小。

例如,

span{
     font-size:14px;
}

从您的示例中,例如,

<p>BIG_ENGLISH_WORDS_<span>small_persian</span>_BIG_ENGLISH_AGAIN...</p>

希望这可以帮助。

PS:您可以通过创建类或 id 选择器来做同样的事情。

于 2013-10-09T06:44:14.250 回答
1

我终于明白你的意思了。我认为您应该查看unicode-rangeCSS 属性。它可能还没有足够的浏览器支持,但这也取决于您的目标受众。Chrome 至少有很好的支持。

我记得在 24ways.org 上读过它。这是Drew McLellan的一篇文章的摘录(http://24ways.org/2011/creating-custom-font-stacks-with-unicode-range/

unicode-range描述符旨在帮助使用没有完全覆盖页面中使用的字符的字体。通过向@font-face规则添加 unicode-range 属性,可以指定字体覆盖的字符范围。

@font-face {
    font-family: BBCBengali;
    src: url(fonts/BBCBengali.ttf) format("opentype");
    unicode-range: U+00-FF;
}

在此示例中,该字体将用于 从 Unicode 表开头的不令人兴奋的控制字符(如感叹号开始的符号 )U+00到ÿ范围内的字符。基本拉丁字符范围。U+FFU+21U+FF

通过为同一系列但具有不同范围的规则添加多个@font-face规则,您可以使用不同的字体来构建页面使用的字符的完整覆盖范围。

还有一篇由Richard Ishida撰写的精彩文章),unicode-range其中附有我在JsFiddle上发布的测试用例。

[编辑]

因此,您的下一步是识别与波斯语相对应的 Unicode 代码点并制定 CSS 规则,如上所述,针对这些代码点并相应地更改字体大小。

于 2013-10-09T18:30:08.697 回答