ホームページ > 記事 > ウェブフロントエンド > CSS グリッドとフレックスボックスを使用したレスポンシブ Web デザイン
レスポンシブ Web デザインは、さまざまな種類のデバイスや画面サイズで適切に動作するように Web サイトを開発する方法です。レスポンシブ デザインでは、デバイスごとにサイトの複数のバージョンを作成する必要がなく、柔軟なグリッドとレイアウト、メディア クエリ、流動的な画像を使用して、すべてのプラットフォームでユーザー エクスペリエンスを向上させます。
世界中で携帯電話やタブレットを使用してインターネットを閲覧する人が増えているため、応答性の高い Web サイトを持つことはもはや選択肢ではなく、必須となっています。レスポンシブデザインにより、消費者は使用しているデバイスに関係なくコンテンツにシームレスにアクセスできるため、使いやすさが向上します。また、コンテンツが視覚的に一貫性があり、デバイス間で簡単に読み取れるようにすることで、ユーザー エクスペリエンスも向上します。これにより、フラストレーションが軽減され、インタラクションが促進されます。さらに、レスポンシブ デザインは Web サイトを将来にわたって使用できるため、大規模な再設計を行うことなく新しいデバイスに適応させることができます。
今日は、レスポンシブ Web デザインの基本を見て、特に 2 つの強力な CSS テクニック、Flexbox と CSS Grid に焦点を当てます。カラフルなボックスと数字を備えたシンプルな Web サイトを使用して、これらのレイアウトがさまざまな画面サイズにどのように適応するかを示します。
レスポンシブ Web デザインは、インターネットの初期の頃から大きく変化しました。メディア クエリ。画面サイズ、解像度、方向などのデバイスの特性に基づいてスタイルを適用します。は 2000 年代初頭に導入され、Flexbox は 2012 年に発売され、CSS グリッドは 2017 年に採用されました。これらの革新により、デザイナーはさまざまなデバイス上で適応可能なレイアウトを作成できるようになり、ユーザーにより良いエクスペリエンスを提供できるようになりました。
それでは、Flexbox と CSS グリッドがどのように機能するかを示す実際の例をいくつか見てみましょう。
CSS グリッドを使用して簡単なレイアウトを作成します。
グリッド レイアウトの HTML:
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <title>Color Grid</title> <link rel="stylesheet" href="styles.css"> </head> <body> <div class="grid-container"> <div class="grid-item" style="background-color: #FF5733;">1</div> <div class="grid-item" style="background-color: #33FF57;">2</div> <div class="grid-item" style="background-color: #3357FF;">3</div> <div class="grid-item" style="background-color: #FF33A1;">4</div> <div class="grid-item" style="background-color: #33FFF1;">5</div> <div class="grid-item" style="background-color: #FFA133;">6</div> </div> </body> </html>
HTML:
グリッド レイアウト用の CSS:
/* styles.css */ body { margin: 0; font-family: Arial, sans-serif; background: #f0f0f0; } .grid-container { display: grid; grid-template-columns: repeat(auto-fit, minmax(100px, 1fr)); gap: 10px; padding: 20px; } .grid-item { display: flex; justify-content: center; align-items: center; height: 100px; color: #fff; font-size: 2em; border-radius: 8px; }
CSS:
このグリッド レイアウトは以下を使用します:
次に、Flexbox を使用して、色付きのボックスの単純な行を作成しましょう。
フレックスボックス レイアウトの HTML:
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <title>Color Row</title> <link rel="stylesheet" href="styles.css"> </head> <body> <div class="flex-container"> <div class="flex-item" style="background-color: #FF5733;">1</div> <div class="flex-item" style="background-color: #33FF57;">2</div> <div class="flex-item" style="background-color: #3357FF;">3</div> <div class="flex-item" style="background-color: #FF33A1;">4</div> </div> </body> </html>
HTML:
フレックスボックス レイアウトの CSS:
/* styles.css */ body { margin: 0; font-family: Arial, sans-serif; background: #f5f5f5; } .flex-container { display: flex; flex-wrap: wrap; justify-content: center; padding: 20px; gap: 10px; } .flex-item { display: flex; justify-content: center; align-items: center; height: 100px; width: 100px; color: #fff; font-size: 2em; border-radius: 8px; }
CSS:
The CSS here uses Flexbox properties to create a responsive layout that adapts to various screen sizes. The display: flex; in the .flex-container gives its child elements, or (flex items), Flexbox functionalities. The flex-wrap: wrap; property allows items to flow onto multiple lines if the container's width is exceeded. The justify-content: center; property centers the flex items along the main axis, so there is a balanced layout regardless of the number of items. The gap: 10px; property introduces uniform spacing between items, improving overall organization. Each .flex-item is also a flex container, using display: flex; to allow further alignment of its inner content, which is centered both vertically and horizontally using justify-content: center; and align-items: center;. The fixed dimensions of height: 100px; and width: 100px; provide uniformity, while the combination of these properties gives the layout a pleasant look while adapting to the needs of different devices.
This flexbox layout demonstrates severalresponsive design characteristics.
When it comes to layout design in CSS, Grid and Flexbox are both great choices, but they serve different purposes. CSS Grid is a two-dimensional layout system that allows you to create complex grid structures with rows and columns, making it ideal for layouts where precise control over both dimensions is required, such as in web applications or dashboards. On the other hand, Flexbox is a one-dimensional layout model that is best at distributing space along a single axis—either horizontally or vertically—making it perfect for simpler layouts or smaller components like buttons or navigation menus. While you might choose Grid for a comprehensive, structured layout where elements need to align across both axes, Flexbox would be your go-to for an adaptive, fluid layout that needs to respond to content size. In the end, your choice should depend on the specific needs of your project; often, using both together, complementarily, can give you the best results.
With CSS Grid and Flexbox, you can create adaptable layouts that look great on any device. These examples illustrate how straightforward it can be to implement dynamic designs.
Now it's your turn! Experiment with these techniques, modify the colors and layout settings, and see how simple it is to create fun and responsive designs.
``
sources:
https://www.w3schools.com/css/css3_flexbox.asp
https://www.w3schools.com/css/css_grid.asp
https://developer.mozilla.org/en-US/docs/Learn/CSS/CSS_layout
https://kinsta.com/blog/responsive-web-design/#4-flexbox-layout
https://css-tricks.com/snippets/css/a-guide-to-flexbox/
https://css-tricks.com/snippets/css/complete-guide-grid/
https://blog.logrocket.com/css-flexbox-vs-css-grid/#:~:text=For%20a%20major%20layout%20style,helpful%20when%20working%20with%20rows.
以上がCSS グリッドとフレックスボックスを使用したレスポンシブ Web デザインの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。