ফ্লেক্সবক্স চ্যালেঞ্জ এবং সীমাবদ্ধতা
চ্যালেঞ্জটি হ'ল একদল ফ্লেক্স আইটেমকে কেন্দ্র করা এবং এগুলি মোড়কে বামে সারিবদ্ধ করা। তবে যতক্ষণ না সারি প্রতি বক্সের একটি নির্দিষ্ট সংখ্যক বাক্স রয়েছে এবং প্রতিটি বাক্স স্থির-প্রস্থ নয়, বর্তমানে এটি ফ্লেক্সবক্সের মাধ্যমে সম্ভব নয়।
কোড প্রশ্ন পোস্ট করা ব্যবহার করে, আমরা একটি নতুন আনমন ধারক বর্তমান আনমন ধারক (গোপন তৈরী করতে পারে ul
), যা আমাদের কেন্দ্রে সম্ভব হবে ul
সঙ্গে justify-content: center
।
তারপরে এর ফ্লেক্স আইটেমগুলি ul
বাম-প্রান্তিককরণের সাথে যুক্ত হতে পারে justify-content: flex-start
।
#container {
display: flex;
justify-content: center;
}
ul {
display: flex;
justify-content: flex-start;
}
এটি বাম-সারিবদ্ধ ফ্লেক্স আইটেমগুলির একটি কেন্দ্রিক গ্রুপ তৈরি করে।
এই পদ্ধতির সমস্যাটি হ'ল নির্দিষ্ট পর্দার আকারে ডানদিকে একটি ফাঁক থাকবে ul
, এটি আর কেন্দ্রিকভাবে প্রদর্শিত হবে না।
এটি ঘটে কারণ ফ্লেক্স লেআউটে (এবং, আসলে, সাধারণভাবে সিএসএস) ধারক:
- জানেন না কখন কোন উপাদান মোড়ানো;
- জানে না যে পূর্বে দখলকৃত স্থানটি এখন খালি, এবং
- সংকীর্ণ লেআউট সঙ্কুচিত-মোড়ক করতে এর প্রস্থটিকে পুনরায় গণনা করে না।
ডানদিকে সাদা স্থানের সর্বোচ্চ দৈর্ঘ্য হ'ল ফ্লেক্স আইটেমের দৈর্ঘ্য যা ধারকটি সেখানে প্রত্যাশা করেছিল।
নীচের ডেমোতে, উইন্ডোটি অনুভূমিকভাবে পুনরায় আকার দেওয়ার মাধ্যমে, আপনি সাদা স্থানটি দেখতে এবং যেতে দেখতে পারেন।
ডেমো
একটি আরও ব্যবহারিক পদ্ধতির
ফ্লেক্সবক্স inline-block
এবং মিডিয়া কোয়েরি ব্যবহার না করে কাঙ্ক্ষিত বিন্যাসটি অর্জন করা যায় ।
এইচটিএমএল
<ul>
<li>1</li>
<li>2</li>
<li>3</li>
<li>4</li>
<li>5</li>
<li>6</li>
</ul>
সিএসএস
ul {
margin: 0 auto;
width: 1200px;
padding-left: 0;
font-size: 0;
}
li {
display: inline-block;
font-size: 18px;
list-style-type: none;
width: 150px;
height: 50px;
line-height: 50px;
margin: 15px 25px;
box-sizing: border-box;
text-align: center;
}
@media screen and (max-width: 430px) { ul { width: 200px; } }
@media screen and (min-width: 431px) and (max-width: 630px) { ul { width: 400px; } }
@media screen and (min-width: 631px) and (max-width: 830px) { ul { width:600px; } }
@media screen and (min-width: 831px) and (max-width: 1030px) { ul { width: 800px; } }
@media screen and (min-width: 1031px) and (max-width: 1230px) { ul { width: 1000px; } }
উপরের কোডটি বাম-সারিবদ্ধ শিশু উপাদানগুলির সাথে একটি অনুভূমিক কেন্দ্রিক ধারককে রেন্ডার করে:
ডেমো
অন্যান্য অপশন