বিবেচনা flex-direction
আপনার প্রশ্নটি পড়ার সময় প্রথম যে বিষয়টি মনে আসে তা হ'ল এটি flex-basis
সর্বদা প্রযোজ্য নয় width
।
কখন flex-direction
হয় row
, flex-basis
প্রস্থ নিয়ন্ত্রণ করে।
কিন্তু যখন flex-direction
হয় column
, flex-basis
উচ্চতা নিয়ন্ত্রণ করে।
মূল পার্থক্য
এখানে flex-basis
এবং width
/ এর মধ্যে কয়েকটি গুরুত্বপূর্ণ পার্থক্য রয়েছে height
:
flex-basis
শুধুমাত্র ফ্লেক্স আইটেমগুলিতে প্রযোজ্য। ফ্লেক্স পাত্রে (এটি ফ্লেক্স আইটেমও নয়) উপেক্ষা করবে flex-basis
তবে ব্যবহার করতে পারে width
এবং height
।
flex-basis
শুধুমাত্র মূল অক্ষে কাজ করে। উদাহরণস্বরূপ, যদি আপনি আছেন flex-direction: column
, width
সম্পত্তি অনুভূমিকভাবে আনমন আইটেম নির্ধারন জন্য প্রয়োজন হবে।
flex-basis
একেবারে অবস্থানযুক্ত ফ্লেক্স আইটেমগুলির উপর কোনও প্রভাব ফেলেনি। width
এবং height
সম্পত্তি প্রয়োজন হবে। একেবারে অবস্থানযুক্ত ফ্লেক্স আইটেমগুলি ফ্লেক্স বিন্যাসে অংশ নেয় না ।
ব্যবহারের flex
সম্পত্তি, তিন বৈশিষ্ট্য - flex-grow
, flex-shrink
এবং flex-basis
- সুন্দরভাবে এক ঘোষণা একত্রিত করা যেতে পারে। ব্যবহার করে width
, একই নিয়মে কোডের একাধিক লাইনের প্রয়োজন হবে।
ব্রাউজার আচরণ
কিভাবে তারা দেখা যায় নিরিখে সেখানে উচিত কোন পার্থক্য মধ্যে flex-basis
এবং width
, যদি না flex-basis
হয় auto
বা content
।
অনুমান থেকে:
7.2.3। flex-basis
সম্পত্তি
auto
এবং ব্যতীত সমস্ত মানগুলির জন্য content
, অনুভূমিক লেখার মোডগুলির flex-basis
মতোই সমাধান করা হয় width
।
কিন্তু এর প্রভাব auto
বা content
ন্যূনতম বা এ সব কিছুই হতে পারে। অনুমান থেকে আরও:
auto
কোনও ফ্লেক্স আইটেমের উপরে নির্দিষ্ট করা হলে, auto
কীওয়ার্ডটি ব্যবহৃত আকারের প্রধান মানের সম্পত্তি পুনরুদ্ধার করে flex-basis
। যদি সেই মানটি নিজেই হয় auto
তবে ব্যবহৃত মান content
।
content
ফ্লেক্স আইটেমের সামগ্রীর উপর ভিত্তি করে স্বয়ংক্রিয় আকারের আকার নির্ধারণ করে।
দ্রষ্টব্য: এই মানটি নমনীয় বক্স লেআউটটির প্রাথমিক প্রকাশে উপস্থিত ছিল না এবং সুতরাং কিছু পুরানো বাস্তবায়ন এটি সমর্থন করবে না। এর auto
প্রধান আকারের ( width
বা height
) একসাথে ব্যবহার করে সমতুল্য প্রভাব অর্জন করা যায় auto
।
সুতরাং, বৈশিষ্ট অনুযায়ী flex-basis
এবং width
সমাধান অভিন্নরুপে, যদি না flex-basis
হয় auto
বা content
। এই জাতীয় ক্ষেত্রে, flex-basis
সামগ্রীর প্রস্থ ব্যবহার করতে পারে (যা সম্ভবত, width
সম্পত্তিটিও ব্যবহার করবে)।
flex-shrink
গুণক
একটি ফ্লেক্স ধারকটির প্রাথমিক সেটিংস মনে রাখা গুরুত্বপূর্ণ। এর মধ্যে কয়েকটি সেটিংস অন্তর্ভুক্ত:
flex-direction: row
- ফ্লেক্স আইটেমগুলি অনুভূমিকভাবে প্রান্তিককরণ করবে
justify-content: flex-start
- ফ্লেক্স আইটেমগুলি মূল অক্ষের লাইনের শুরুতে স্ট্যাক করবে
align-items: stretch
- ফ্লেক্স আইটেমগুলি ধারকটির ক্রস-আকার কভার করতে প্রসারিত হবে
flex-wrap: nowrap
- নমনীয় আইটেমগুলি একক লাইনে থাকতে বাধ্য হয়
flex-shrink: 1
- একটি ফ্লেক্স আইটেম সঙ্কুচিত করার অনুমতি দেওয়া হয়
শেষ সেটিংস নোট করুন।
যেহেতু ফ্লেক্স আইটেমগুলিকে ডিফল্টরূপে সঙ্কুচিত করার অনুমতি দেওয়া হয় (যা তাদের পাত্রে উপচে পড়া থেকে বাধা দেয়), নির্দিষ্ট flex-basis
/ width
/ height
ওভাররাইড হতে পারে।
উদাহরণস্বরূপ, flex-basis: 100px
বা width: 100px
, এর সাথে মিলিতভাবে flex-shrink: 1
অগত্যা 100px হবে না।
নির্দিষ্ট প্রস্থ রেন্ডার করতে - এবং এটি স্থির রাখতে - আপনাকে সঙ্কুচিত করতে অক্ষম করতে হবে:
div {
width: 100px;
flex-shrink: 0;
}
অথবা
div {
flex-basis: 100px;
flex-shrink: 0;
}
অথবা, স্পেক দ্বারা প্রস্তাবিত হিসাবে:
flex: 0 0 100px; /* don't grow, don't shrink, stay fixed at 100px */
7.2। নমনীয়তার উপাদান
লেখক ব্যবহার নিয়ন্ত্রণ নমনীয়তা করার পরামর্শ দেওয়া হয় flex
সরাসরি তার longhand করতে properties সহযোগে বদলে সাধারণভাবে সংক্ষেপে, যেমন সাধারণভাবে সংক্ষেপে সঠিকভাবে কোনো অনির্দিষ্ট উপাদান রিসেট মিটমাট সাধারণ ব্যবহার ।
ব্রাউজার বাগ
কিছু ব্রাউজারের নেস্টেড ফ্লেক্স পাত্রে ফ্লেক্স আইটেম আকার দিতে সমস্যা হয়।
flex-basis
নেস্টেড ফ্লেক্স পাত্রে উপেক্ষা করা। width
কাজ করে।
ব্যবহার করার সময় flex-basis
, ধারকটি তার বাচ্চাদের আকার পরিবর্তন করে এবং শিশুরা পাত্রে উপচে পড়ে। তবে width
সম্পত্তি সহ, ধারকটি তার বাচ্চাদের আকারকে সম্মান করে এবং সেই অনুযায়ী প্রসারিত হয়।
তথ্যসূত্র:
উদাহরণ:
আইটেমগুলি ব্যবহার করে flex-basis
এবং white-space: nowrap
ওভারফ্লো inline-flex
ধারক। width
কাজ করে।
মনে হয় যে কোনও ফ্লেক্স পাত্রে কোনও ভাইবোনকে রেন্ডার করার সময় কোনও শিশু inline-flex
সনাক্ত করতে পারে না (যদিও এটি কেবল অপরিজ্ঞাত প্রস্থের আইটেম হতে পারে)। আইটেমগুলি সমন্বিত করতে ধারকটি প্রসারিত হয় না।flex-basis
white-space: nowrap
কিন্তু যখন width
সম্পত্তিটি পরিবর্তে ব্যবহৃত হয় flex-basis
, ধারকটি তার বাচ্চাদের আকারকে সম্মান করে এবং সেই অনুযায়ী প্রসারিত হয়। আইই 11 এবং এজতে এটি কোনও সমস্যা নয়।
তথ্যসূত্র:
উদাহরণ:
flex-basis
(এবং flex-grow
) টেবিল উপাদান কাজ করে না
তথ্যসূত্র:
flex-basis
যখন পিতামহু পাত্রগুলি সঙ্কুচিত-থেকে-ফিট উপাদান হিসাবে ক্রোম এবং ফায়ারফক্সে ব্যর্থ হয়। এজ এজেটে ঠিকঠাক কাজ করে।
উপরের লিঙ্কে উপস্থাপিত উদাহরণের মতো, জড়িত position: absolute
থাকা float
এবং এর ব্যবহারও inline-block
একই ত্রুটিযুক্ত আউটপুট ( jsfiddle ডেমো ) রেন্ডার করবে ।
IE 10 এবং 11 কে প্রভাবিত করছে: