2010-07-08 6 views
14

Я использую @font-face, чтобы отобразить лигу Gothic на веб-сайте, но она не отображается на Android 1.6. Вот мой код, генерируется с Font Squirrel's @font-face generatorШрифты CSS на Android

@font-face { 
    font-family: 'LeagueGothicRegular'; 
    src: url('/fonts/League_Gothic-webfont.eot'); 
    src: local('☺'), url('/fonts/League_Gothic-webfont.woff') format('woff'), url('/fonts/League_Gothic-webfont.ttf') format('truetype'), url('/fonts/League_Gothic-webfont.svg#webfont') format('svg'); 
    font-weight: normal; 
    font-style: normal; 
} 

font-family:'LeagueGothicRegular',Impact,Charcoal,sans-serif; 

Это не имеет большого значения, если @font-face не поддерживается (я читал, что поддержка @font-face ушла полностью в Android 2). Но лига Gothic довольно сжата, поэтому я хотел бы указать лучший альтернативный шрифт для Android, чем стандартный sans-serif, поэтому дизайн не полностью сломается.

Нечто подобное было бы идеально: http://www.droidfonts.com/info/droid-sans-condensed-fonts/

Но я не могу найти окончательный список шрифтов по умолчанию, которые поставляются с Android, и имя, которое я должен использовать, чтобы ссылаться на них в CSS.

EDIT Ответов до сих пор пропустили точку (или я сформулировать вопрос плохо) - то, что я после того, как список системных шрифтов, которые поставляются с Android. Что-то like this для Android.

+0

Похоже, это может быть исправлено в андроид 2.2 - HTTP: // код .google.com/p/android/issues/detail? id = 8655 –

+0

Bryan: даже с Android 2.2 ошибка, связанная с поддержкой local() (часто используемой для работы и ошибкой IE), по-прежнему прерывает Android. См. Http://code.google.com/p/android/issues/detail?id=10609. – mikemaccana

+0

Эй, Бен, вы могли использовать Droid Fonts, не встраивая их в приложение или в Интернет? просто из css, как вы упомянули в принятом ответе? –

ответ

12

Шрифты, которые я вижу, установлены на моем Android (2.2) системные файлы:

  • Clockopia.ttf
  • DroidSans-Bold.ttf
  • DroidSans.ttf
  • DroidSansArabic.ttf
  • DroidSansFallback.ttf
  • DroidSansHebrew.ttf
  • DroidSansMono.ttf
  • DroidSansThai.ttf
  • DroidSerif-Bold.ttf
  • DroidSerif-BoldItalic.ttf
  • DroidSerif-Italic.ttf
  • DroidSerif-Regular.ttf
+0

Это именно то, что я получил после Zog, спасибо. – Ben

+7

Для бонусных очков любая идея, какие имена должны использоваться для ссылки на эти шрифты в CSS? например font-family: «Droid Sans», sans-serif; или font-family: DroidSans, sans-serif; или что-то еще? – Ben

+1

Эй, Бен, могли ли вы использовать Droid Fonts, не встраивая их в приложение или в Интернет? просто из css, как вы упомянули? –

44

У меня была точно такая же проблема, пытаясь заставить webfonts работать на imeveryone. В настоящее время, как представляется, не быть где-нибудь в Интернете, что говорит об этом прямо, так что я буду делать это здесь:

«локальный) (» синтаксиса, используемый для stop IE choking on file formats IE doesn't support также stops Android from loading fonts that Android does support.

О, дорогой. Но это легко фиксируется. Важно не обращать внимание на локальное обходное решение IE «Bulletproof Font Face». Это аккуратный взлом, и он не должен ломать Android, но он виноват в Google.

Android does support TTF and OTF Файлы. Достаточно синтаксис для поддержки Android и IE (и любого другого браузера) выглядит следующим образом:.

O 1) Вам нужны два отдельных таблицы стилей для шрифтов, до каких-либо регулярных стилей:

<link rel="stylesheet" type="text/css" href="/css/fonts.css" /> 
<!--[if IE]> 
    <link rel="stylesheet" href="/css/styleiefonts.css}" type="text/css" charset="utf-8" /> 
<![endif]--> 

O 2) В нормальных стилях, используемых Android и большинство других браузеров, не используйте местный хак:

@font-face { 
    font-family: 'LeagueGothicRegular'; 
    src: url('/static/fonts/League_Gothic-webfont.woff') format('woff'), 
     url('/static/fonts/League_Gothic-webfont.ttf') format('truetype'), 
     url('/static/fonts/League_Gothic-webfont.svg#webfontOTINA1xY') format('svg'); 
    font-weight: normal; 
    font-style: normal; 
} 

O 3. В конкретных стилей IE, по-прежнему, как обычно:

@font-face { 
    font-family: 'LeagueGothicRegular'; 
    src: url('/static/fonts/League_Gothic-webfont.eot'); 
} 

Это все, что вам нужно, чтобы получить рабочие веб-сайты во всех браузерах. На данный момент. Когда-нибудь Google исправит Android и MS исправит IE, поэтому этот ответ больше не будет применяться.

+0

FYI Trevor Я снял фигурные скобки, они были просто остатками шаблона Tornado. – mikemaccana

+1

Удивительный человек, не думал, что это возможно. Благодаря! – Batfan

+1

Спасибо, друг, куду с пятью./Dave – SpiRail

11

Я слышал, но не испытал, что метод "Mo' Bulletproofer", разработанный Ричардом Финком, обо всех этих проблемах (IE и Android) не требует двойных таблиц стилей. Синтаксис:

@font-face{ /* for IE */ 
font-family:'LeagueGothicRegular'; 
src:url(fishy.eot); 
} 
@font-face { /* for non-IE */ 
font-family: 'LeagueGothicRegular'; 
src:url(http://:/) format("No-IE-404"),url('/fonts/League_Gothic-webfont.woff') format('woff'), url('/fonts/League_Gothic-webfont.ttf') format('truetype'), url('/fonts/League_Gothic-webfont.svg#webfont') format('svg'); 
} 

Надеюсь, это поможет!

+1

Я протестировал и могу подтвердить, что это работает во всех основных браузерах, включая Android 2.2. Спасибо, Этан! – mikemaccana

+0

@nailer, что вы думаете, могу ли я встроить шрифт другого языка, такой как армянский или грузинский шрифт, как это и показать в тексте браузера, который обычно отображается квадратными знаками? –

Смежные вопросы