CSS レスポンシブ デザイン: メディア クエリ


メディアからのお問い合わせ

CSS のメディア クエリは、さまざまなデバイスの画面サイズと解像度に基づいてスタイル シートを定義する方法です。CSS では、メディア クエリを使用して、さまざまなデバイスの種類や画面サイズに基づいてさまざまなスタイルを適用し、レスポンシブ デザインを実現できます。

メディア クエリの基本的な構文は次のとおりです。

@media screen and (max-width: 600px) {
    
    
  /* CSS样式 */
}

上記のコードでは、@media はメディア タイプを指定し、screen はデバイス タイプがスクリーン デバイスであることを示し、複数の条件を指定します。max-width: 600px は、画面幅が 600px 以下の場合にスタイルが適用されることを示します。 。

CSS は、画面に加えて、印刷 (印刷デバイス)、音声 (音声合成) などの他のメディア タイプも提供します。さまざまなデバイスの種類や画面サイズに基づいて、さまざまなスタイルを適用できます。

メディアクエリでは、max-width(最大幅)、min-width(最小幅)、orientation(画面の向き)など、さまざまな条件を使用してスタイルシートの適用範囲を定義できます。特定のニーズに応じてさまざまな条件を選択できます。

レスポンシブ デザインでは、通常、メディア クエリを使用してさまざまな画面サイズでのレイアウトとスタイルを定義し、さまざまなデバイス上で Web ページの適応的なレイアウトと表示効果を確保します。メディア クエリを適切に使用することで、より柔軟で適応性のある Web ページのレイアウトとスタイルを作成できます。

ブレークポイントの追加

CSS では、メディア クエリを使用してブレークポイントを追加し、さまざまな画面サイズにさまざまなスタイルを適用できます。ブレークポイントは、異なる画面サイズに異なるスタイルが適用される分割点です。ブレークポイントを追加することで、さまざまな画面サイズに基づいてさまざまなレイアウトやスタイルを適用し、レスポンシブ デザインを実現できます。

以下は、メディア クエリを使用してブレークポイントを追加する方法を示す簡単な例です。

/* 默认样式 */
.container {
    
    
  width: 100%;
}

.box {
    
    
  width: 50%;
  float: left;
}

/* 在屏幕宽度小于 600px 时应用不同的样式 */
@media screen and (max-width: 600px) {
    
    
  .container {
    
    
    width: 100%;
  }

  .box {
    
    
    width: 100%;
    float: none;
  }
}

上の例では、コンテナーと 2 つのボックスを定義しました。デフォルトでは、コンテナの幅は 100% で、各ボックスの幅は 50% で左にフローティングされます。画面の幅が 600px 未満の場合、コンテナの幅は 100% のままですが、各ボックスの幅が 100% になり、フロートがキャンセルされる別のスタイルが適用されます。これにより、小さな画面では 1 つのボックスを表示し、大きな画面では 2 つのボックスを並べて表示することができます。

実際のアプリケーションでは、必要に応じて複数のブレークポイントを追加し、ブレークポイントごとに異なるスタイルを定義できます。ブレークポイントを追加することで、さまざまなデバイスや画面サイズに対応する、より柔軟で適応性のある Web ページのレイアウトとスタイルを作成できます。

モバイルファーストに設計

モバイル ファーストの設計とは、Web ページの設計および開発時にモバイル デバイスのエクスペリエンスを優先し、モバイル デバイスでの Web ページの表示と操作がデスクトップ デバイスでの Web ページと同等か、それ以上であることを保証することを意味します。

モバイルファースト向けにデザインするためのヒントをいくつか紹介します。

  1. レスポンシブ デザイン: レスポンシブ デザインを使用して、Web ページがモバイル デバイスを含むさまざまな画面サイズに適応できるようにします。これは、メディア クエリを使用して、さまざまな画面サイズに対応するさまざまなスタイルを定義することを意味します。
  2. 画像とアイコンの最適化: モバイル デバイスの場合、読み込み速度とメモリ使用量が非常に重要です。したがって、画像とアイコンのファイル サイズと品質を最適化して、画像とアイコンが迅速に読み込まれ、メモリの使用量が少なくなるようにする必要があります。
  3. ボタンとテキストの最適化: モバイル デバイスでは、ボタンとテキストのサイズは、ユーザーがクリックして読みやすいように十分な大きさにする必要があります。また、ユーザーが誤ってクリックしたり操作したりするのを防ぐために、小さすぎるテキストやボタンの使用は避けてください。
  4. シンプルなナビゲーションを提供する: モバイル デバイスの場合、シンプルなナビゲーションにより、ユーザーは探しているものをより速く見つけることができます。したがって、ナビゲーションメニューは可能な限り簡素化し、理解しやすく操作しやすいものにする必要があります。
  5. 完全なユーザー エクスペリエンスを提供する: モバイル デバイスの画面サイズは小さくても、さまざまな機能や情報を含む完全なユーザー エクスペリエンスを提供する必要があります。たとえば、ユーザーが必要な操作やタスクを簡単に完了できるように、検索機能、ショッピング カート、フォーム、その他の要素をモバイル デバイスに提供する必要があります。

全体として、モバイルファーストのデザインは、現在の Web デザインと開発における重要なトレンドです。Web ページの表示方法と操作方法を最適化することで、より良いユーザー エクスペリエンスを提供し、より多くのモバイル デバイス ユーザーを引き付けることができます。

その他のブレークポイント

メディア クエリを使用して CSS にブレークポイントを追加する以外にも、ブレークポイントを実装する方法があります。

  1. JavaScript: JavaScript を使用して、現在のデバイスの画面サイズを検出し、さまざまなサイズに基づいてさまざまなスタイルやレイアウトを適用します。JavaScriptコードを記述することで、画面サイズに応じて要素のスタイルやレイアウトを動的に変更し、ブレークポイントの機能を実装できます。
  2. フレックスボックス: CSS を備えたフレックスボックスにより、レスポンシブ デザインが簡単になります。Flexbox を使用すると、要素のサイズと位置を簡単に調整して、さまざまな画面サイズで最適なプレゼンテーションを実現できます。Flexbox は、要素のレイアウトと配置をさらに制御するためのさまざまなプロパティと値も提供します。
  3. グリッド: CSS のグリッド レイアウトは、レスポンシブ デザインを実装する機能も提供します。グリッドを使用すると、Web ページをさまざまなグリッド領域に分割し、画面サイズに応じてグリッドのサイズと位置を調整できます。グリッド レイアウトには、グリッドのプロパティとスタイルをさらに制御できるさまざまなプロパティと値も提供されます。

つまり、ブレークポイントを実装するには、CSS、JavaScript、Flexbox、グリッドでのメディア クエリの使用など、さまざまな方法があります。どの方法を選択するかは、プロジェクトのニーズと開発者の好みによって異なります。

向き: 横向き/縦向き

CSS では、メディア クエリとデバイスの方向プロパティ (方向など) を使用して、デバイスの画面の方向を検出し、それに応じてさまざまなスタイルを適用できます。ただし、デバイスの向きの情報は、ブラウザのセキュリティ ポリシーとプライバシーの考慮事項に基づいて、すべてのブラウザでサポートされなくなる可能性があることに注意してください。

以下は、デバイスの向きに基づいて背景色を変更しようとする簡単な例です。

/* 默认样式 */
body {
    
    
  background-color: lightblue;
}

/* 横屏样式 */
@media screen and (orientation: landscape) {
    
    
  body {
    
    
    background-color: lightgreen;
  }
}

/* 竖屏样式 */
@media screen and (orientation: portrait) {
    
    
  body {
    
    
    background-color: lightcoral;
  }
}

この例では、デバイスが横向きの場合、背景色が薄緑色に変わり、デバイスが縦向きの場合、背景色が明るいコーラルに変わります。デバイスの向き情報を取得できない場合は、デフォルトのスタイルである水色の背景色が適用されます。

デバイスの向き情報はプライバシーとセキュリティ上の理由から無効になっている可能性があるため、上記のコードはすべてのデバイスとブラウザで正しく動作しない可能性があることに注意してください。実際のプロジェクトでは、デバイスの方向情報を取得できない状況に対処するための代替手段または代替スタイルがあることを確認する必要があります。

おすすめ

転載: blog.csdn.net/m0_62617719/article/details/133071474