Flexbox একটি one-dimensional layout model — এটি item-কে একটি একক row বা column-এ সাজায়, আর আগের lesson-এর পুরনো float-ভিত্তিক layout-এর চেয়ে spacing, alignment, আর reorder করা অনেক সহজ করে।
একটি parent এলিমেন্টের সরাসরি child-দের flex item বানাতে display: flex সেট করুন।
.container {
display: flex;
}item row-এ না column-এ layout হবে তা নিয়ন্ত্রণ করে।
.container {
flex-direction: row; /* default — বাম থেকে ডান */
flex-direction: row-reverse;
flex-direction: column; /* উপর থেকে নিচ */
flex-direction: column-reverse;
}main axis বরাবর item align করে (একটি row-এর জন্য horizontally)।
.container {
justify-content: flex-start; /* default */
justify-content: flex-end;
justify-content: center;
justify-content: space-between;
justify-content: space-around;
justify-content: space-evenly;
}cross axis বরাবর item align করে (একটি row-এর জন্য vertically)।
.container {
align-items: stretch; /* default — container height ভরে দেয় */
align-items: flex-start;
align-items: flex-end;
align-items: center;
align-items: baseline;
}Item default-এ এক লাইনে ফিট করতে সংকুচিত হয়। flex-wrap: wrap এগুলোকে একাধিক লাইনে wrap হতে দেয়।
.container {
flex-wrap: nowrap; /* default */
flex-wrap: wrap;
}প্রতিটি item-এ আলাদা margin না দিয়েই flex item-গুলোর মধ্যে space যোগ করে।
.container {
display: flex;
gap: 16px;
}| প্রপার্টি | এটা কী করে |
|---|---|
| flex-grow | অন্য item-এর তুলনায় একটি item কতটা বেড়ে অতিরিক্ত জায়গা পূরণ করে (default 0) |
| flex-shrink | যথেষ্ট জায়গা না থাকলে একটি item কতটা সংকুচিত হয় (default 1) |
| flex-basis | বাড়া বা সংকুচিত হওয়ার আগে item-এর শুরুর আকার (default auto) |
.item {
flex-grow: 1;
flex-shrink: 1;
flex-basis: 200px;
/* প্রায়ই shorthand হিসেবে লেখা হয়: */
flex: 1 1 200px;
}align-self একটি নির্দিষ্ট item-এর জন্য align-items-কে override করে। order HTML স্পর্শ না করেই item-এর visual ক্রম বদলায়।
.item-featured {
align-self: center;
order: -1; /* এই item-কে প্রথমে নিয়ে যায় */
}Interactively practice করুন
এই সাইটের Flexbox Playground tool (Tools-এর নিচে) আপনাকে এই পেজের প্রতিটি প্রপার্টির মান drag করতে দেয় আর live layout আপডেট দেখতে দেয় — শুধু কোড পড়ার চেয়ে intuition তৈরির দ্রুত উপায়।