Google Chromeでは10px以下のフォントサイズが指定通りにレンダリングされなかった
Google Chrome 118より以前は、デフォルトの最小フォントサイズが10pxに設定されていた。CSSにおいて10px以下のフォントサイズは指定どおりにレンダリングされず、10px以下は10pxと同様のレンダリング結果になっていた。

CSS に 4 つの新しい国際化機能を導入 - すべての言語で一貫した最小フォントサイズ
指定のフォントサイズにレンダリングしない設定の明確な理由は不明だが、単純にフォントサイズが小さいと読みづらく、特にマルチバイト文字を有する言語においては、より文字が潰れて読みづらくなるため固定されていたものと思われる。日本語は10px以下、中国語では12px以下になるなどロケールによって設定は異なるようだ1。
Google Chromeに限らず、各種ブラウザのフォントサイズ設定には最小フォントサイズの設定があり、環境によって表示できるサイズは変わる。
サンプル
ブラウザの設定で最小フォントが設定されている場合は期待通りの表示にならないので注意。
これまで10px以下のフォントサイズはどう表現していたか
モバイル端末や高解像度のディスプレイ端末の普及によって、昨今のウェブサイトのデザインにおいては10px以下のフォントサイズを指定することは少なくなってきている。しかし、古くから存在しているウェブサイトにおいては10px以下のフォントサイズが使われることは珍しくなかった。
これまでのGoogle Chromeで8px相当のスタイルを指定する場合は、以下のようなスタイルを指定していた。
/* ベースのフォントサイズを10pxにして、scaleで0.8倍に縮小する */
.font-size-8px {
font-size: 10px;
transform: scale(0.8);
}
transform: scale()
の問題点
transform: scale()
の指定だけで意図通りの表示結果になる場合は良いが、デザインによってはこのままでは意図通りの位置に配置されず、transform-origin
で座標を調整する必要がある。
/* 調整例 */
.font-size-8px--adjusted {
font-size: 10px;
transform: translateY(1px) scale(0.8);
transform-origin: bottom center;
}