レスポンシブ レイアウトの作成は、Web 開発者にとって共通の課題です。このブログでは、CSS グリッドがこの特定のレイアウトに最適なアプローチである理由に焦点を当てながら、さまざまな CSS テクニックを使用して特定のレスポンシブ デザインを実現する方法を探っていきます。
次のようなレイアウトを作成する必要があります:
Flexbox は 1 次元レイアウトには優れていますが、私たちのような複雑な 2 次元レイアウトには苦労します。その理由は次のとおりです:
DIV 1DIV 2DIV 3
.container { display: flex; flex-wrap: wrap; gap: 10px; padding: 10px; } .item { background-color: #40c4ff; color: white; padding: 20px; text-align: center; box-sizing: border-box; } .item:nth-child(1), .item:nth-child(3) { flex: 1 1 calc(50% - 10px); } .item:nth-child(2) { flex: 1 1 50%; } @media (max-width: 768px) { .item { flex: 1 1 100%; } }
このフレックスボックス設定では:
CSS グリッドは 2 次元レイアウトの作成に優れているため、この課題に最適です。
DIV 1DIV 2DIV 3
.container { display: grid; grid-template-columns: 1fr 1fr; grid-template-rows: auto auto; gap: 10px; padding: 10px; } .item { background-color: #40c4ff; color: white; padding: 20px; text-align: center; box-sizing: border-box; } .item:nth-child(1) { grid-column: 1 / 2; grid-row: 1 / 2; } .item:nth-child(2) { grid-column: 2 / 3; grid-row: 1 / 3; } .item:nth-child(3) { grid-column: 1 / 2; grid-row: 2 / 3; } @media (max-width: 768px) { .container { display: flex; flex-direction: column; } .item { width: 100%; } }
Flexbox は、より単純な 1 次元のレイアウトに最適ですが、CSS グリッドは、より複雑な 2 次元のデザインに必要な機能と柔軟性を提供します。 CSS グリッドを使用すると、最小限のコードと最大限の制御で、目的の応答性の高いレイアウトを簡単に実現できます。
この例を独自のプロジェクトに合わせて自由に調整し、レスポンシブ レイアウトに CSS グリッドを使用する利点を楽しんでください。
免責事項: 提供されるすべてのリソースの一部はインターネットからのものです。お客様の著作権またはその他の権利および利益の侵害がある場合は、詳細な理由を説明し、著作権または権利および利益の証拠を提出して、電子メール [email protected] に送信してください。 できるだけ早く対応させていただきます。
Copyright© 2022 湘ICP备2022001581号-3