Tailwind CSS レスポンシブデザイン

レスポンシブデザインは現代のWeb開発において重要な構成要素であり、Webページが異なる画面サイズでも良好に表示されることを保証します。

Tailwind CSSはレスポンシブレイアウトを実装するための非常に便利なツールを提供しており、そのレスポンシブデザインは主にブレークポイントとプレフィックスを使用して、異なる画面サイズでのスタイル適用を制御します。


レスポンシブツールクラスを使用して適応型ユーザーインターフェースを構築する

Tailwind CSSのすべてのツールクラスはブレークポイントによって条件付きで適用できるため、HTML内で複雑なレスポンシブインターフェースを簡単に構築できます。

1. ビューポート設定を正しく確認する

始める前に、HTMLドキュメントの<head>部分に以下のビューポートメタタグを追加していることを確認してください。

<meta name="viewport" content="width=device-width, initial-scale=1.0">

この手順により、Webページのコンテンツがモバイルデバイスで正しく拡大縮小および表示されます。

2. ブレークポイントプレフィックスでツールクラスを適用する

特定のブレークポイントでツールクラスを有効にするには、クラス名の前にブレークポイント名を付け、:で区切るだけです。

例

<!-- デフォルトの幅は16、中画面では32、大画面では48 -->
<img class="w-16 md:w-32 lg:w-48" src="...">
  • 画面幅が768px未満の場合、画像の幅は16(w-16)。
  • 中画面(768px以上)の場合、画像の幅は32(md:w-32)。
  • 大画面(1024px以上)の場合、画像の幅は48(lg:w-48)。

3. デフォルトで提供される5つのブレークポイント

Tailwind CSSはデフォルトで以下の5つのブレークポイントをサポートしています。これらのブレークポイントは一般的なデバイス解像度から着想を得ています。

ブレークポイント名最小幅プレフィックス一般的なデバイス
sm640pxsm:小画面(例:スマートフォンの横向きモード)
md768pxmd:中画面(例:タブレットデバイス)
lg1024pxlg:大画面(例:小型ノートパソコン)
xl1280pxxl:超大画面(例:デスクトップモニター)
2xl1536px2xl:超ワイド画面(例:より高解像度のモニター)

レスポンシブデザインの実装方法

1. レスポンシブレイアウトの制御

Tailwindでは、レスポンシブプレフィックスを使用して、レイアウト、フォント、色、間隔などを調整できます。

例

<div class="text-center sm:text-left md:text-right">
  This text will be center-aligned on small screens, left-aligned on medium screens, and right-aligned on larger screens.
</div>

試してみる »

説明:

  • 小画面(sm)では、テキストが中央揃え(text-center)。
  • 中画面(md)では、テキストが左揃え(text-left)。
  • 大画面以上(lg)では、テキストが右揃え(text-right)。

2. レスポンシブグリッドレイアウト

レスポンシブツールクラスを使用することで、異なる画面サイズでのカラムレイアウトを定義できます。

例

<div class="grid grid-cols-1 sm:grid-cols-2 lg:grid-cols-4">
  <div class="bg-red-500">Item 1</div>
  <div class="bg-green-500">Item 2</div>
  <div class="bg-blue-500">Item 3</div>
  <div class="bg-yellow-500">Item 4</div>
</div>

試してみる »

説明:

  • デフォルト設定では、グリッドは単一カラム(grid-cols-1)。
  • 小画面(640px以上)では、グリッドは2カラムに調整されます(sm:grid-cols-2)。
  • 大画面(1024px以上)では、グリッドは4カラムに調整されます(lg:grid-cols-4)。

3. カスタムレスポンシブブレークポイント

デフォルトの5つのブレークポイントに加えて、Tailwindではtailwind.config.jsブレークポイントをカスタマイズして、特定のプロジェクト要件を満たすことができます。

例

module.exports = {
  theme: {
    screens: {
      'xs': '480px', // 極小画面
      'sm': '640px',
      'md': '768px',
      'lg': '1024px',
      'xl': '1280px',
      '2xl': '1536px',
    },
  },
}

カスタムブレークポイントはデフォルトのブレークポイントと同じように使用できます:

例

<div class="xs:text-sm sm:text-base lg:text-xl">
  Responsive text size.
</div>

試してみる »

4. メディアクエリクラス

Tailwindはカスタムメディアクエリを提供します。例:

  • 最小幅:min-[...]。
  • 最大幅:max-[...]。

例

<div class="min-[640px]:bg-blue-500 max-[640px]:bg-red-500">
  This div changes color based on screen width.
</div>

試してみる »

5. レスポンシブの非表示と表示

次のようなクラスを使用して、hiddenとblockレスポンシブプレフィックスと組み合わせることで、コンテンツを非表示または表示できます:

例

<div class="hidden sm:block md:hidden lg:block">
より大きな画面サイズでのみ、このコンテンツが表示されます!!!
</div>

試してみる »
その他の拡張