অ্যাডামের গৃহীত উত্তর (flex: 1 1 0
ফ্লেক্সবক্স ধারকগুলির জন্য পুরোপুরি কাজ করে যার প্রস্থ হয় স্থির, বা পূর্বপুরুষ দ্বারা নির্ধারিত। বাচ্চাদের পাত্রে ফিট করার মতো পরিস্থিতি।
যাইহোক, আপনার এমন একটি পরিস্থিতি থাকতে পারে যেখানে আপনি চান সন্তানের সাথে সবচেয়ে বড় আকারের উপর ভিত্তি করে শিশুদের সমান আকারের ধারক বাচ্চাদের ফিট করে। আপনি একটি ফ্লেক্সবক্স ধারক তার বাচ্চাদের দ্বারা এটি ফিট করতে পারেন:
- সেটিং
position: absolute
এবং সেটিং width
বা না right
, বা
- এটি একটি মোড়কের ভিতরে রাখুন
display: inline-block
এই ধরনের ফ্লেক্সবক্স ধারকগুলির জন্য, গৃহীত উত্তরগুলি কার্যকর হয় না , বাচ্চাদের সমান আকার দেওয়া হয় না। আমি অনুমান করি যে এটি ফ্লেক্সবক্সের সীমাবদ্ধতা, যেহেতু এটি ক্রোম, ফায়ারফক্স এবং সাফারিতে একই রকম আচরণ করে।
সমাধানটি হ'ল ফ্লেক্সবক্সের পরিবর্তে গ্রিড ব্যবহার করা।
ডেমো: https://codepen.io/brettdonal/pen/oRpORG
<p>Normal scenario — flexbox where the children adjust to fit the container — and the children are made equal size by setting {flex: 1 1 0}</p>
<div id="div0">
<div>
Flexbox
</div>
<div>
Width determined by viewport
</div>
<div>
All child elements are equal size with {flex: 1 1 0}
</div>
</div>
<p>Now we want to have the container fit the children, but still have the children all equally sized, based on the largest child. We can see that {flex: 1 1 0} has no effect.</p>
<div class="wrap-inline-block">
<div id="div1">
<div>
Flexbox
</div>
<div>
Inside inline-block
</div>
<div>
We want all children to be the size of this text
</div>
</div>
</div>
<div id="div2">
<div>
Flexbox
</div>
<div>
Absolutely positioned
</div>
<div>
We want all children to be the size of this text
</div>
</div>
<br><br><br><br><br><br>
<p>So let's try a grid instead. Aha! That's what we want!</p>
<div class="wrap-inline-block">
<div id="div3">
<div>
Grid
</div>
<div>
Inside inline-block
</div>
<div>
We want all children to be the size of this text
</div>
</div>
</div>
<div id="div4">
<div>
Grid
</div>
<div>
Absolutely positioned
</div>
<div>
We want all children to be the size of this text
</div>
</div>
body {
margin: 1em;
}
.wrap-inline-block {
display: inline-block;
}
#div0, #div1, #div2, #div3, #div4 {
border: 1px solid #888;
padding: 0.5em;
text-align: center;
white-space: nowrap;
}
#div2, #div4 {
position: absolute;
left: 1em;
}
#div0>*, #div1>*, #div2>*, #div3>*, #div4>* {
margin: 0.5em;
color: white;
background-color: navy;
padding: 0.5em;
}
#div0, #div1, #div2 {
display: flex;
}
#div0>*, #div1>*, #div2>* {
flex: 1 1 0;
}
#div0 {
margin-bottom: 1em;
}
#div2 {
top: 15.5em;
}
#div3, #div4 {
display: grid;
grid-template-columns: repeat(3,1fr);
}
#div4 {
top: 28.5em;
}
flex
সম্পত্তিটি সম্পত্তিflex-grow
,flex-shrink
এবং সম্পত্তিগুলির জন্য একটি শর্টহ্যান্ড সম্পত্তিflex-basis
। স্বতন্ত্র বৈশিষ্ট্যগুলির উপর শর্টহ্যান্ড ব্যবহার করার পরামর্শ দেওয়া হয় কারণ শর্টহ্যান্ড সঠিকভাবে সাধারণ ব্যবহারগুলিকে সামঞ্জস্য করতে কোনও অনির্দিষ্ট উপাদানকে পুনরায় সেট করে। প্রাথমিক মান হয়0 1 auto
।