CSS-এ ফ্লেক্স এলিমেন্টের জিরো গ্রিডিনেস
যদি কোনও এলিমেন্টের জন্য flex-grow শূন্য হয়,
তবে সেই এলিমেন্টটি ফ্রি স্পেস বন্টনে অংশ নেবে না।
ডিফল্টরূপে, গ্রিডিনেসের মান ঠিক শূন্য হয়
এবং তাই flex-grow না দেওয়া এলিমেন্টগুলি
নিজেদের মধ্যে ফ্রি স্পেস ভাগ করে না।
উদাহরণ হিসাবে আসুন একটি গণনা করি। আমাদের কাছে তিনটি ফ্লেক্স এলিমেন্ট আছে,
প্রতিটির প্রস্থ 100px। প্রথম এলিমেন্টটির
flex-grow নেই (বা এটি 0 এর সমান),
দ্বিতীয় এলিমেন্টের flex-grow রয়েছে,
যা 2 এর সমান, এবং তৃতীয়টি - 3 এর সমান।
ধরি প্যারেন্টের প্রস্থ 500px।
তাহলে ফ্রি স্পেস হবে
200px, এবং flex-grow এর এক ইউনিটের জন্য
পড়বে । ফলে, প্রথম এলিমেন্টের প্রস্থ
200px / 5 = 40px100px ই থাকবে,
যেহেতু এটি বন্টনে অংশ নেয় না,
দ্বিতীয়টির প্রস্থ হবে , এবং তৃতীয়টির প্রস্থ - 100px + 2 * 40px
= 180px।
100px
+ 3 * 40px = 220px
ব্যবহারিক সমস্যা
নীচের সমস্ত সমস্যায় আপনাকে কিছু কোড দেওয়া হবে
ফ্লেক্স এলিমেন্ট সহ, যাদের প্রস্থ এবং flex-grow রয়েছে।
দেওয়া কোডের উপর ভিত্তি করে গণনা করুন, প্রতিটি এলিমেন্টের
কি আকার হবে। তারপর কোডটি রান করুন
এবং এলিমেন্টগুলির প্রকৃত প্রস্থ পরিমাপ করে আপনার গণনা পরীক্ষা করুন।
<div class="parent">
<div class="child elem1">1</div>
<div class="child elem2">2</div>
<div class="child elem3">3</div>
</div>
.parent {
display: flex;
width: 500px;
height: 200px;
border: 1px solid red;
}
.child {
height: 50px;
border: 1px solid green;
}
.elem1 {
width: 200px;
flex-grow: 0;
}
.elem2 {
width: 100px;
flex-grow: 1;
}
.elem3 {
width: 100px;
flex-grow: 1;
}
<div class="parent">
<div class="child elem1">1</div>
<div class="child elem2">2</div>
<div class="child elem3">3</div>
</div>
.parent {
display: flex;
width: 900px;
height: 200px;
border: 1px solid red;
}
.child {
height: 50px;
border: 1px solid green;
}
.elem1 {
width: 300px;
flex-grow: 0;
}
.elem2 {
width: 200px;
flex-grow: 3;
}
.elem3 {
width: 100px;
flex-grow: 2;
}
<div class="parent">
<div class="child elem1">1</div>
<div class="child elem2">2</div>
<div class="child elem3">3</div>
<div class="child elem4">4</div>
</div>
.parent {
display: flex;
width: 700px;
height: 200px;
border: 1px solid red;
}
.child {
height: 50px;
border: 1px solid green;
}
.elem1 {
width: 200px;
flex-grow: 0;
}
.elem2 {
width: 200px;
flex-grow: 0;
}
.elem3 {
width: 100px;
flex-grow: 1;
}
.elem4 {
width: 100px;
flex-grow: 1;
}