創建響應式佈局是 Web 開發人員面臨的常見挑戰。在本部落格中,我們將探討如何使用不同的 CSS 技術來實現特定的響應式設計,並專注於為什麼 CSS 網格是這種特定佈局的最佳方法。
我們需要建立一個佈局,其中:
Flexbox 對於一維佈局非常出色,但對於像我們這樣的複雜二維佈局卻很困難。原因如下:
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 Grid 擅長創建二維佈局,使其非常適合這項挑戰。
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 非常適合簡單的一維佈局,但 CSS Grid 提供了更複雜的二維設計所需的功能和靈活性。透過使用 CSS Grid,我們可以輕鬆地以最少的程式碼和最大的控制實現所需的響應式佈局。
請隨意調整此範例以適合您自己的項目,並享受使用 CSS 網格進行響應式佈局的好處!
免責聲明: 提供的所有資源部分來自互聯網,如果有侵犯您的版權或其他權益,請說明詳細緣由並提供版權或權益證明然後發到郵箱:[email protected] 我們會在第一時間內為您處理。
Copyright© 2022 湘ICP备2022001581号-3