Использование CSS font-family для выбора шрифтов Droid, не работающих на Android - PullRequest
6 голосов
/ 22 февраля 2011

Я обнаружил, что следующий код HTML не работает на Android (он будет использовать только шрифт по умолчанию: Droid Sans. На рабочем столе он работает как положено.

<p style='font-family: "Droid Sans",sans-serif;'>vând whisky și tequila, preț fix.</p>
<p style='font-family: "Droid Sans Mono",monospace;'>vând whisky și tequila, preț fix.</p>
<p style='font-family: "Droid Serif",serif;'>vând whisky și tequila, preț fix.</p>

Ответы [ 2 ]

1 голос
/ 23 марта 2014

Похоже, Android распознает только фамилии, определенные в system_fonts.xml ( fonts.xml вплоть до пряников). Например. чтобы получить Droid Serif, вы должны написать общий serif. Подробнее см. этот ответ .

О, и есть странность с «Droid Sans»: это одно имя равно в конфигурации с 4.0, но .ttf является символической ссылкой на Roboto.

Я вижу, как рано в жизни Android кто-то сказал: «У нас будет только три шрифта, поэтому лучше, если разработчики используют только общие имена, чтобы мы всегда могли их заменить»

Но это прискорбно. Есть много причин, почему фактический шрифт, который вы получите, может отличаться:

  • До 4.0 вы получаете семью Droid, после того как вы получаете семью Roboto.
  • Firefox связывает Open Sans и Charis SIL и использует их вместо
  • Производители могут заменить 3 шрифта своими. РЕДАКТИРОВАТЬ: Я не могу найти никакого подтверждения, что это действительно происходит.

Во всех этих ситуациях было бы хорошо, если бы я мог ссылаться на определенный шрифт по фактическому имени в моем стеке шрифтов. Увы, я не могу.

1 голос
/ 23 февраля 2011

Возможно, у вас нет объявления @ font-face для других шрифтов в вашем css.Я полагаю, у вас есть только один для Droid Sans.Вам нужен один для каждого шрифта.Например, в вашем css вы должны иметь:

@font-face {
    font-family: 'DroidSans';
    src: url('font/DroidSans-webfont.eot?') format('eot'),
         url('font/DroidSans-webfont.woff') format('woff'),
         url('font/DroidSans-webfont.ttf') format('truetype'),
         url('font/DroidSans-webfont.svg#webfontw7zqO19G') format('svg');
    font-weight: normal;
    font-style: normal;

}

@font-face {
    font-family: 'DroidSansMono';
    src: url('font/DroidSans-Mono-webfont.eot?') format('eot'),
         url('font/DroidSans-Mono-webfont.woff') format('woff'),
         url('font/DroidSans-Mono-webfont.ttf') format('truetype'),
         url('font/DroidSans-Mono-webfont.svg#webfontSOhoM6aS') format('svg');
    font-weight: normal;
    font-style: normal;

}

@font-face {
    font-family: 'DroidSerif';
    src: url('font/DroidSerif-webfont.eot?') format('eot'),
         url('font/DroidSerif-webfont.woff') format('woff'),
         url('font/DroidSerif-webfont.ttf') format('truetype'),
         url('font/DroidSerif-webfont.svg#webfontw7zqO19G') format('svg');
    font-weight: normal;
    font-style: normal;

}

И тогда в вашем коде ваше семейство шрифтов должно быть таким же, как и те, которые вы объявили в css выше (т.е. font-family: 'Droid Sans'; не то же самое, что font-family:' DroidSans ')

<p style='font-family: "DroidSans",sans-serif;'>vând whisky și tequila, preț fix.</p>
<p style='font-family: "DroidSansMono",monospace;'>vând whisky și tequila, preț fix.</p>
<p style='font-family: "DroidSerif",serif;'>vând whisky și tequila, preț fix.</p>

Попробуйте и посмотрите, как вы попадаете.

...