Flexbox একটি শক্তিশালী CSS মডেল যা আপনাকে সহজে Responsive Grid Layout তৈরি করতে সহায়তা করে। সাধারণত Grid Layout তৈরি করার জন্য CSS Grid ব্যবহার করা হয়, তবে Flexbox দিয়ে সহজে Responsive Grid তৈরি করা সম্ভব, বিশেষ করে যখন আপনি এক বা দুই দিকের সাথে কাজ করছেন। Flexbox-এর flex-wrap, justify-content, এবং align-items এর মতো প্রপার্টি ব্যবহার করে আপনি মাল্টি-কলাম গ্রিড ডিজাইন তৈরি করতে পারেন যা বিভিন্ন স্ক্রীন সাইজে সঠিকভাবে রেস্পন্স করে।
Responsive Grid Layout তৈরি করার জন্য Flexbox ব্যবহার
এখানে Flexbox ব্যবহার করে Responsive Grid Layout তৈরির উদাহরণ দেওয়া হলো, যেখানে Grid-এর কলামগুলো বিভিন্ন স্ক্রীন সাইজ অনুযায়ী নিজে থেকেই সামঞ্জস্য হবে।
HTML Structure:
<div class="flex-container">
<div class="flex-item">Item 1</div>
<div class="flex-item">Item 2</div>
<div class="flex-item">Item 3</div>
<div class="flex-item">Item 4</div>
<div class="flex-item">Item 5</div>
<div class="flex-item">Item 6</div>
</div>
CSS (Flexbox Responsive Grid Layout):
.flex-container {
display: flex;
flex-wrap: wrap; /* একাধিক লাইনে আইটেমগুলো সাজানোর জন্য */
gap: 20px; /* আইটেমগুলোর মধ্যে গ্যাপ */
justify-content: space-between; /* আইটেমগুলোর মধ্যে সমান দূরত্ব থাকবে */
}
.flex-item {
background-color: lightblue;
padding: 20px;
text-align: center;
flex: 1 1 30%; /* আইটেমগুলো ৩০% জায়গা দখল করবে */
min-width: 200px; /* আইটেমের ন্যূনতম প্রস্থ */
border: 1px solid #ccc;
}
/* মিডিয়া কুয়েরি - ছোট স্ক্রীন (মোবাইল) */
@media (max-width: 768px) {
.flex-item {
flex: 1 1 45%; /* ছোট স্ক্রীনে ৪৫% জায়গা দখল করবে */
}
}
/* মিডিয়া কুয়েরি - আরও ছোট স্ক্রীন (ট্যাবলেট বা মোবাইল) */
@media (max-width: 480px) {
.flex-item {
flex: 1 1 100%; /* আরও ছোট স্ক্রীনে ১০০% জায়গা দখল করবে */
}
}
কোড বিশ্লেষণ:
display: flex;
Flexbox সক্রিয় করতে কন্টেইনারেdisplay: flex;ব্যবহার করা হয়েছে।flex-wrap: wrap;
এটি নিশ্চিত করে যে আইটেমগুলো একাধিক লাইনে সজ্জিত হবে যদি কন্টেইনারের জন্য জায়গা কমে যায়।gap: 20px;
আইটেমগুলোর মধ্যে ২০px ফাঁকা জায়গা থাকবে।justify-content: space-between;
এটি আইটেমগুলোর মধ্যে সমান জায়গা সৃষ্টি করবে এবং প্রথম এবং শেষ আইটেম কন্টেইনারের প্রান্তে থাকবে।flex: 1 1 30%;
প্রতিটি আইটেম ৩০% জায়গা দখল করবে, তবে প্রয়োজন অনুযায়ী এটি প্রসারিত বা সংকুচিত হতে পারে।min-width: 200px;সেট করে, আইটেমটি ন্যূনতম ২০০px প্রস্থ নিতে বাধ্য থাকবে।- Responsive Media Queries:
- ৭৬৮px-এর নিচে (যেমন ট্যাবলেট স্ক্রীন) আইটেমগুলো ৪৫% জায়গা নেবে।
- ৪৮০px-এর নিচে (যেমন মোবাইল স্ক্রীন) আইটেমগুলো ১০০% জায়গা দখল করবে, অর্থাৎ পুরো সারি নেবে।
উদাহরণ:
Desktop View:
- ৩টি কলাম থাকবে এবং আইটেমগুলো সমানভাবে সজ্জিত হবে, প্রতিটি ৩০% জায়গা দখল করবে।
Tablet View:
- ২টি কলাম থাকবে, প্রতিটি আইটেম ৪৫% জায়গা নেবে এবং তাদের মধ্যে সমান গ্যাপ থাকবে।
Mobile View:
- ১টি কলাম থাকবে, যেখানে প্রতিটি আইটেম পুরো প্রস্থ দখল করবে।
নতুন স্ক্রীন সাইজে Responsive Flexbox Grid Layout:
এভাবে Flexbox ব্যবহার করে একটি সম্পূর্ণ Responsive Grid Layout তৈরি করা যায় যা বিভিন্ন ডিভাইসে (ডেস্কটপ, ট্যাবলেট, মোবাইল) সঠিকভাবে কাজ করবে। Flexbox এর সাহায্যে সহজে বিভিন্ন উপাদানের আকার এবং বিন্যাস নিয়ন্ত্রণ করা সম্ভব, এবং মিডিয়া কুয়েরি ব্যবহার করে লেআউটটি বিভিন্ন স্ক্রীনে উপযুক্তভাবে সাজানো হয়।
সারাংশ:
Flexbox-এর মাধ্যমে Responsive Grid Layout তৈরি করা খুবই সহজ এবং শক্তিশালী। এর flex-wrap, justify-content, এবং flex প্রপার্টির মাধ্যমে বিভিন্ন স্ক্রীন সাইজে উপাদানগুলোর সঠিক বিন্যাস করা সম্ভব। Flexbox ব্যবহার করলে সিলেক্টিভ কলাম, আইটেম আকার এবং গ্যাপ নিয়ন্ত্রণে চমৎকার ফলাফল পাওয়া যায়।
Read more