Flexbox যেখানে item-কে একটি দিকে সাজায়, CSS Grid two-dimensional — এটি একসাথে row আর column define করে, আর সেই grid-এর যেকোনো জায়গায় item বসায়।
.container {
display: grid;
}column আর row-এর সংখ্যা আর আকার define করে।
.container {
display: grid;
grid-template-columns: 200px 200px 200px;
grid-template-rows: 100px 100px;
}fr উপলব্ধ জায়গার একটি ভগ্নাংশ represent করে — fixed pixel width-এর চেয়ে অনেক বেশি flexible।
.container {
grid-template-columns: 1fr 2fr 1fr; /* মাঝের column দ্বিগুণ চওড়া */
}repeat() একই মান বারবার টাইপ করা এড়ায়। minmax() একটি track-কে একটি minimum আর maximum আকার দেয়।
.container {
grid-template-columns: repeat(3, 1fr);
grid-template-columns: repeat(auto-fit, minmax(200px, 1fr));
}.container {
display: grid;
gap: 16px; /* row আর column gap */
gap: 16px 24px; /* row gap, column gap */
}শুরু আর শেষ line নির্দিষ্ট করে একটি item একাধিক column বা row জুড়ে থাকতে পারে।
.item-featured {
grid-column: 1 / 3; /* line 1-এ শুরু, line 3-এ শেষ — 2টি column জুড়ে */
grid-row: 1 / 3;
}নামযুক্ত area একনজরে একটি layout-এর structure readable বানায়।
.container {
display: grid;
grid-template-columns: 200px 1fr;
grid-template-areas:
"sidebar header"
"sidebar content";
}
.sidebar { grid-area: sidebar; }
.header { grid-area: header; }
.content { grid-area: content; }| Grid বনাম Flexbox | কখন ব্যবহার করবেন |
|---|---|
| Grid | Layout-এর একসাথে row আর column দরকার — একটি page shell, একটি card gallery, একটি form grid |
| Flexbox | Item এক দিকে flow করে আর সেই দিক বরাবর distribute বা align করা দরকার — একটি navbar, একটি button group |
Interactively practice করুন
এই সাইটের Grid Generator tool (Tools-এর নিচে) visually একটি grid বানায় আর CSS output দেয় — আগে হাতে না লিখেই grid-template-areas আকার নিতে দেখার একটি ভালো উপায়।