Android で <code> タグ内の文字を等幅フォントで表示する

手持ちの Android 2機種 (Xperia XZ と Nexus 5) の Chrome ブラウザで <code> タグ内の等幅フォントを表示するのに苦戦しました。

結論としては MonacoCourier という2つのフォントが有効でした。

Monaco Courier

設定した font-family

最終的に <code> タグに以下の font-family を設定しました。

code {font-family: Menlo, Consolas, Monaco, monospace, sans-serif}

この指定で Mac / Windows / iPhone / Android (少なくとも Xperia XZ と Nexus 5) の 4OS で等幅フォントを表示できます。

この font-family のフォントと OS の対応表をまとめると次のような形ですね。

フォントOS
MenloMac, iPhone 向け
ConsolasWindows 向け
MonacoAndroid (Xperia XZ, Nexus 5) 向け

元々、 Menlo, Consolas, monospace, sans-serif だけを設定していたんですが、Android 端末の表示だけ等幅フォントにならず。調べてみると Android 端末が持つフォントはメーカーによっても異なるため一概には言えないようです。

しかも monospace を指定すると等幅フォントにならないという始末。

途方に暮れかけましたが、手持ちの Xperia XZ と Nexus 5 で試行錯誤したところ、 MonacoCourier の2つの等幅フォントを表示できることが判明。Courier は文字の線が細く見にくいため Monaco を指定しています。

他の Android 機種

Xperia XZ と Nexus 5 以外の Android で MonacoCourier フォントが有効かは不明です。Google 謹製の Nexus 5 で有効なのだから、その他の Android でも有効だといいんですが。

また、Xperia は日本でのシェアが高いため Xperia シリーズで Monaco フォントが有効であれば、日本の Android の多数で正しく等幅フォントが表示できていることになります。そのため、Monaco (もしくは Courier ) を指定しておけば問題ないのかな、考えています。

まとめ

Android の Chrome ブラウザで等幅フォントを表示する方法を調べました。Android のフォント情報は検索しても中々出てこないので、苦戦しますね。

Android 端末でも綺麗に等幅フォントを表示したい場合は参考にしてみてください。