Chromeがバージョン42になってフォントの扱いが変わった。Web制作をする人は要注意かも知れないのでメモ。
lang設定をしているセクションは、常に内部設定(変更することが出来ない)のフォントが利用されるというのが大きな変更で、これはつまり、セクション毎に正しくlang設定を行っている場合に問題になる。例えば、lang=“ja"としたセクションがあると、そのセクションは強制的にメイリオ等のフォントとなる。CSSでfont-familyを指定した場合においても、指定したフォントが日本語フォントでない場合にはこの設定が優先される。
つまり、ブラウザの設定で特定のフォントを変更しておいたとしても、lang属性があるとそれに従った内部設定が利用されるというもの。基本、webを作るときは素の状態のブラウザで作る訳なのでこれにひっかかることは少ないと思うが、特定の企業向け等で画面のレイアウトが崩れる等の弊害が発生する可能性がある。
これを回避するには幾つか方法があるが、最も簡単なのは全てのセクションにおいてデフォルトのフォントをCSSで設定しておくと良いだろう。
* { font-family: "メイリオ"; }
但し、下記のように汎用フォントを使うとChrome以外のブラウザで表示した時に思った表示と違う表示になる可能性がある。
* { font-family: sans-serif; }