0

根据我关于 Unicode Character-specific CSS 的问题,我得到了一个很好的解决方案:unicode-range,但实际上它并没有真正起作用,或者它在没有任何可见变化的情况下工作。

我遵循了Paul Irish的Bulletproof @font-face Syntax Tutorial来索引我的可嵌入字体。它以某种方式嵌入字体,但不正确(我的问题是特定于 Bānglā 字体)。如果我在浏览器中设置字体,那么它会提供完美的字体大小和字形视图。但是,如果我从文件夹中删除特定字体/windows/fonts,则嵌入不会以正确的大小显示文本。所以实际font-size财产是我的问题。

如果我可以检测到 Bānglā 字体是否是浏览器中的默认字体,那么我将加载较小的字体,如果没有,我将加载更大的字体。

那么,真的有可能检测到浏览器中启用了哪个默认字体吗?

编辑

我的实时站点是dev.nanodesignsbd.com - 如果这可以帮助某人找到 @font-face 防弹语法中的错误。附上的图片会为我说话: 我想要什么我的字体

这只能通过浏览器字体设置来完成。:(

4

3 回答 3

3

PHP 是一种服务器端语言,在 Web 服务器上运行。它无法控制用户的网络浏览器,也无法真正确定字体(或其他任何东西)。为了处理客户端的东西,你需要 JavaScript。也就是说,我认为使用 JavaScript 也无法可靠地确定字体。

于 2013-10-31T18:57:38.300 回答
1

通常,默认字体放在<body><html>带有 CSS 的标签上。这些默认情况下在浏览器配置中定义。在 PHP 中获取指定浏览器的默认值的唯一方法是查看每个浏览器的默认值以及您想要支持的每种语言。然后,您必须解析用户代理字符串以查看应该使用哪个默认值。

最好的解决方案不是 PHP,因为正如我所说,浏览器在 CSS 中定义这些字体。相反,您可以使用 javascript 在页面加载后检查默认字体是什么。

你可以这样getComputedStyle()做:

对于 HTML 标签

window.getComputedStyle(document.body.parentNode);

身体标签

window.getComputedStyle(document.body);

这些将返回浏览器的计算样式数组。

希望这可以帮助!

于 2013-10-31T18:59:33.170 回答
0

PHP 会让你得到一些关于浏览器的信息。没有任何信息与字体有关。

http://php.net/manual/en/function.get-browser.php

我认为这是您将获得的最特定于平台的信息:

$browser = get_browser(null, true);
print_r($browser);

Array
(
    [browser_name_regex] => ^mozilla/5\.0 (windows; .; windows nt 5\.1; .*rv:.*) gecko/.* firefox/0\.9.*$
    [browser_name_pattern] => Mozilla/5.0 (Windows; ?; Windows NT 5.1; *rv:*) Gecko/* Firefox/0.9*
    [parent] => Firefox 0.9
    [platform] => WinXP
    [browser] => Firefox
    [version] => 0.9
    [majorver] => 0
    [minorver] => 9
    [cssversion] => 2
    [frames] => 1
    [iframes] => 1
    [tables] => 1
    [cookies] => 1
    [backgroundsounds] =>
    [vbscript] =>
    [javascript] => 1
    [javaapplets] => 1
    [activexcontrols] =>
    [cdf] =>
    [aol] =>
    [beta] => 1
    [win16] =>
    [crawler] =>
    [stripper] =>
    [wap] =>
    [netclr] =>
)
于 2013-10-31T19:03:38.737 回答