Rethinking Text Resizing on Web. Airbnb has made significant strides in… | by Steven Bassett | The Airbnb Tech Blog | May, 2024 | Medium
フォントのスケーリングを扱う上では、フォントの大きさが変更されたときに一緒に拡大縮小されるべき要素と、フォントのサイズにかかわらず一定の大きさであるべき要素を区別する必要があります。CSSにおいて、この2つの設定を分けているのが「px」「em」「rem」などの単位です。 「px」は画面上の1ピクセルを表す単位で、px単位で大きさを指定されたコンテンツは常に一定の大きさでレンダリングされます。「rem」「em」は共にフォントサイズからの相対的な大きさを指定する単位です。下図は3つの単位それぞれで大きさを指定した例で、最初はフォントサイズが16pxに設定されています。 フォントサイズを20pxに拡大すると「px」単位で大きさを指定した要素は変化がありませんが、「rem」「em」で指定した要素はフォントサイズに合わせて大きくなりました。「rem」はhtml要素のフォントサイズからの相対的な大きさのため、「0.5rem」の要素を重ねても同じ大きさで表示されますが、「em」は親のフォントサイズからの相対的な大きさのため、「0.5em」を重ねると最終的な表示サイズはかけ算されてどんどん小さくなっていきます。