20

请看一下这个附加的截图。这是我的 PhoneGap 测试应用程序 - 在 Galaxy S4 上拍摄。

您应该看到铃铛、书签、公文包和相机图标(以及更多)未按预期显示。

以下是我的观察:

  1. 所有图标都可以在 PC 和移动设备上的浏览器(chrome、safari)中正确显示
  2. 所有图标都可以在 ios 的同一个应用程序中正确显示(在 iphone/ipad、ios7 中检查)

“问号”只能在 Android 应用程序中看到。

有谁知道原因?

4

2 回答 2

26

这是转义序列的问题。如果您可以可靠地维护 UTF-8 编码的 CSS 文件,则可以覆盖 Bootstrap 默认值以使用实际的非转义字形。

(根据您的浏览器,以下代码似乎包含一堆框。但是,复制代码并将其粘贴到 UTF-8 文档中应该会保留这些值。)

@charset "UTF-8";

.glyphicon-bell:before {
  content: "";
}
.glyphicon-bookmark:before {
  content: "";
}
.glyphicon-briefcase:before {
  content: "";
}
.glyphicon-calendar:before {
  content: "";
}
.glyphicon-camera:before {
  content: "";
}
.glyphicon-fire:before {
  content: "";
}
.glyphicon-lock:before {
  content: "";
}
.glyphicon-paperclip:before {
  content: "";
}
.glyphicon-pushpin:before {
  content: "";
}
.glyphicon-wrench:before {
  content: "";
}

您也可以更改转义序列来解决此问题,但浏览器支持会有所不同。如果您只针对 Android/BlackBerry,以下应该可以正常工作:

.glyphicon-bell:before {
  content: "\d83d\dd14";
}
.glyphicon-bookmark:before {
  content: "\d83d\dd16";
}
.glyphicon-briefcase:before {
  content: "\d83d\dcbc";
}
.glyphicon-calendar:before {
  content: "\d83d\dcc5";
}
.glyphicon-camera:before {
  content: "\d83d\dcf7";
}
.glyphicon-fire:before {
  content: "\d83d\dd25";
}
.glyphicon-lock:before {
  content: "\d83d\dd12";
}
.glyphicon-paperclip:before {
  content: "\d83d\dcce";
}
.glyphicon-pushpin:before {
  content: "\d83d\dccc";
}
.glyphicon-wrench:before {
  content: "\d83d\dd27";
}
于 2013-10-18T06:40:29.233 回答
0

这可能是因为 bootstrap min .css 文件和字形文件的版本不匹配。

于 2015-03-28T06:03:12.363 回答