お知らせ

CSSの単位がたくさんあり何を使えばよいか迷った時に、フォント、スペース、ポジション、要素の幅・高さに最適な単位は

CSSには便利な単位がたくさんあります。よく使用する単位として絶対単位(pxなど)や相対単位(emrem%など)をはじめ、Gridの単位(fr)やビューポート単位(vwvhなど)があります。いくつかの単位は使う場所が限られていますが、複数もしくはどこにでも使用できる単位もたくさんあります。

Webサイトやスマホアプリでフォントのサイズ、スペース、ポジション、FlexboxとGrid、要素の幅または高さに使用する場合、どのようにCSSの単位を選べばよいのかを紹介します。

CSSの単位はどこでそれぞれ何を使えばよいか

What CSS length unit should you use?


CSSの単位はどこでそれぞれ何を使えばよいか

CSSの単位はそれぞれどこで使えばいいのかは、下記ページのフローチャートで質問に答えるだけで分かります。

サイトのキャプチャ

What CSS length unit should you use?

以下は、そのフローの解説です。
フローの入り口は、下記のように分かれています。

  • ポジショニング、ディテール・エフェクトに適したCSSの単位
  • スペースに適したCSSの単位
  • フォントサイズに適したCSSの単位
  • FlexboxとGridに適したCSSの単位
  • 要素の幅または高さに適したCSSの単位

ポジショニング、ディテール・エフェクトに適したCSSの単位

まずは、ポジショニング(toprightbottomleft)、ディテール・エフェクト(borderoutlineshadowなど)に適したCSSの単位から。

ポジショニング、ディテール・エフェクトに適したCSSの単位

ポジショニング、ディテール・エフェクトに適したCSSの単位は、下記の通りです。

  • px
  • rem

ほとんどの場合、pxを使用します。pxであれば、細かい調整も簡単にできます。ただし、ほかの場所の単位にremを使用している場合は、一貫性を保つためにremを使い続けたほうがよいでしょう。好みに応じて、emも使えます。

スペースに適したCSSの単位

スペース(marginpaddinggap)に適したCSSの単位。

スペースに適したCSSの単位

スペースに適したCSSの単位は、、下記の通りです。

  • pxemrem
  • vw/vhmin()clamp()

段落間スペースには、emremが適しています。remが使用できる場合もありますが、emを使用することで、テキストのフォントサイズに応じてスペースを調整できます。これにより全体的なフローがよくなります。

スペースをpaddingで確保する場合は、使用するケースによって異なります。まず、固定値が必要な場合rempxを使用します。柔軟性の高い値が必要な場合は、emが最適です。たとえば、ボタンにemを使用し、フォントサイズを変更して小さいバージョンや大きいバージョンを作成すると、paddingが自動的に調整されます。

利用可能なスペースの量に応じてサイズを調整したい場合、たとえばスクリーンのサイズが大きい場合はpaddingを多くするなどの場合は、ビューポート単位(vw/vh)が使用できますが、通常はスペースが大きすぎたり小さすぎたりするのを避けるためにclamp()でサイズを調整するのが最適です。

pxなど、絶対単位について詳しくは、下記をご覧ください。

知っておくと便利なCSSの単位: 絶対単位(px)の使い方

相対単位が主流の現在、絶対単位(px, in, mmなど)は特定のケースで非常に役立ちます

フォントサイズに適したCSSの単位

フォントサイズ(htmlbodyhxpadivなど)に適したCSSの単位。

フォントサイズに適したCSSの単位


  • rem
  • em
  • clamp()
  • cqi
  • lhexcap

htmlタグやbodyタグにfont-sizeを定義する場合は、2通りです。レスポンシブにする必要がない場合は、remを使用します。使いやすく、予測可能で、そして非常に重要なポイントはユーザーの選択を尊重します。ユーザーがOSまたはブラウザでフォントのサイズを変更した場合でも、同じ効果が得られます。レスポンシブにする場合は、clamp()を使用します。clamp()関数には3つの値(最小値、推奨値、最大値)を設定します。

サイトのキャプチャ

CSSの比較関数が便利すぎる! min(), max(), clamp()の使い方を詳しく解説

特定の要素(hnpolulなど)で異なるサイズを設定したい場合は、親要素のfont-sizeを基準に相対的に定義したい場合は、emを使用します。より正確な値を定義したい場合は、lhexcapを使用します。
これはインライン要素(aspanstrongなど)も同じです。

レイアウト要素(divnavmainasidefooterななど)に設定する場合は、htmlタグやbodyタグの場合と同じです。

フォントに使用する単位について詳しくは、下記をご覧ください。

知っておくと便利なCSSの単位: フォントに基づく相対単位(em, rem, cap, ch, ex, ic, lhなど)の便利な使い方を解説

フォントに基づく相対単位(em, rem, cap, ch, ex, ic, lhなど)の便利な使い方を解説

FlexboxとGridに適したCSSの単位

FlexboxとGridに適したCSSの単位は主に、要素間のギャップ、グリッドの列・行、アイテムの幅に使用します。

FlexboxとGridに適したCSSの単位


  • pxrem
  • fr
  • frpxremautomin-content
  • max-widthmin-width
  • flex-growflex-shrink

要素間のギャップに使用する場合は、固定サイズにはpxrememを使用し、流動的であればビューポート単位(vw

ページトップへ