Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

CSS fonts on Android

I'm using @font-face to display League Gothic on a website, but it's not showing up on Android 1.6. Here's my code, generated with Font Squirrel's @font-face generator

@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;

It's not a big deal if @font-face isn't supported (I read that @font-face support is gone completely in Android 2). But League Gothic is quite condensed, so I would like to specify a better fallback font for Android than the default sans-serif so the design doesn't completely break.

Something like this would be perfect: http://www.droidfonts.com/info/droid-sans-condensed-fonts/

But I can't find a definitive list of the default fonts that come with Android, and the name I should use to reference them in CSS.

EDIT The answers so far missed the point (or I worded the question badly) - what I'm after is a list of system fonts that ship with Android. Something like this for Android.

like image 291
Ben Avatar asked Jul 08 '10 01:07

Ben


People also ask

Can I install fonts on Android?

To install a custom font on Android, obtain the TTF file of the font you wish to use and also download the zFont app. Use the zFont app to install the TTF. It may require some prerequisites and the app will help you do it.

How do I get CSS fonts?

To see the CSS related to the font, look under the Styles tab. You can scroll through to search for font-related values. However, as there might be overrides and irrelevant style rules here, the Computed tab is usually more helpful.


1 Answers

I've had the exact same issue trying to get webfonts to work on imeveryone. As of now, there doesn't seem to be anywhere on the internet that states this directly, so I'll do it here:

The 'local()' syntax used to stop IE choking on file formats IE doesn't support also stops Android from loading fonts that Android does support.

Oh dear. But it's easily fixed. The important thing is to ignore the 'Bulletproof Font Face' local IE workaround. It's a neat hack, and shouldn't break Android, but it does, blame Google.

Android does support TTF and OTF files. The proper syntax to support both Android and IE (and every other browser) happy is as follows.

O 1) You need two separate style sheets for fonts, before any regular style sheets:

<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) In the normal style sheet, used by Android and most other browsers, don't use the local hack:

@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. In the IE specific style sheet, continue as normal:

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

That's all you need to get working webfonts across all browsers. For now. Someday Google will fix Android and MS will fix IE, so this answer won't apply anymore.

like image 99
mikemaccana Avatar answered Sep 24 '22 00:09

mikemaccana