এই সমস্যার একটি সাধারণ সমাধান নিখরচায় অবস্থান বা ক্রপযুক্ত ফ্লোট ব্যবহার করে তবে এগুলি মুশকিল যে আপনার কলামগুলি সংখ্যা + আকারে পরিবর্তিত হয় এবং আপনার "মূল" কলামটি সর্বদা দীর্ঘতম হয় তা নিশ্চিত করার প্রয়োজন। পরিবর্তে, আমি আপনাকে আরও তিনটি দৃust় সমাধান ব্যবহার করার পরামর্শ দিচ্ছি:
display: flex
: এখন পর্যন্ত সহজতম এবং সর্বোত্তম সমাধান এবং খুব নমনীয় - তবে আইই 9 এবং তার চেয়ে বেশি বয়স্কদের দ্বারা অসমর্থিত।
table
বা display: table
: খুব সাধারণ, খুব সামঞ্জস্যপূর্ণ (প্রতিটি ব্রাউজারে প্রায়), বেশ নমনীয়।
display: inline-block; width:50%
নেতিবাচক মার্জিন হ্যাক সহ: বেশ সহজ, কিন্তু কলাম-নীচের সীমানাগুলি কিছুটা জটিল।
1। display:flex
এটি সত্যই সহজ এবং আরও জটিল বা আরও বিস্তারিত লেআউটগুলির সাথে খাপ খাইয়ে নেওয়া সহজ - তবে ফ্লেক্সবক্সটি কেবল আইই 10 বা তারপরে সমর্থিত (অন্যান্য আধুনিক ব্রাউজারগুলি ছাড়াও)।
উদাহরণ: http://output.jsbin.com/hetunujuma/1
প্রাসঙ্গিক এইচটিএমএল:
<div class="parent"><div>column 1</div><div>column 2</div></div>
প্রাসঙ্গিক CSS:
.parent { display: -ms-flex; display: -webkit-flex; display: flex; }
.parent>div { flex:1; }
ফ্লেক্সবক্সের আরও অনেক বিকল্পের জন্য সমর্থন রয়েছে, তবে কেবলমাত্র উপরের পর্যায়ে থাকা যে কোনও কলামের সংখ্যা রয়েছে!
2. <table>
বাdisplay: table
এটি করার একটি সহজ এবং অত্যন্ত সামঞ্জস্যপূর্ণ উপায় হ'ল table
- আমি আপনাকে পুরানো-আইই সমর্থন প্রয়োজন হলে প্রথমে চেষ্টা করে নেওয়ার পরামর্শ দিই । আপনি কলামগুলি নিয়ে কাজ করছেন; ডিভস + ফ্লোটগুলি কেবল এটি করার সর্বোত্তম উপায় নয় (কেবলমাত্র সারণী ব্যবহার না করে কেবলমাত্র সিমেন্ট সীমাবদ্ধতার আশপাশে হ্যাক করার জন্য নেস্টেড ডিভের একাধিক স্তরের কথা উল্লেখ না করা)। আপনি যদি table
উপাদানটি ব্যবহার করতে না চান তবে সিএসএস বিবেচনা করুনdisplay: table
(আইআই 7 এবং তার চেয়ে বেশি বয়স্ক দ্বারা অসমর্থিত)।
উদাহরণ: http://jsfiddle.net/emn13/7FFp3/
প্রাসঙ্গিক এইচটিএমএল: (তবে<table>
পরিবর্তেএকটি প্লেইন ব্যবহার বিবেচনাকরুন)
<div class="parent"><div>column 1</div><div>column 2</div></div>
প্রাসঙ্গিক CSS:
.parent { display: table; }
.parent > div {display: table-cell; width:50%; }
/*omit width:50% for auto-scaled column widths*/
এই পদ্ধতিটি overflow:hidden
ফ্লোটের সাথে ব্যবহারের চেয়ে অনেক বেশি দৃ ust়। আপনি বেশ কয়েকটি সংখ্যক কলাম যুক্ত করতে পারেন; আপনি চাইলে এগুলি স্বয়ংক্রিয়ভাবে করতে পারেন; এবং আপনি প্রাচীন ব্রাউজারগুলির সাথে সামঞ্জস্যতা বজায় রাখুন। ভাসমান সমাধানের বিপরীতে, কোন কলামটি সবচেয়ে দীর্ঘ তা আপনার আগেও জানতে হবে না ; উচ্চতা স্কেল ঠিক আছে।
KISS: আপনার বিশেষভাবে প্রয়োজন না হলে ফ্লোট হ্যাক ব্যবহার করবেন না। আইই 7 যদি কোনও সমস্যা হয় তবে আমি কোনও দিন কঠোর রক্ষণাবেক্ষণ, কম নমনীয় ট্রিক-সিএসএস সমাধানের মাধ্যমে অর্থপূর্ণ কলামগুলির সাথে একটি সাদামাটা টেবিলটি বেছে নেব।
যাইহোক, আপনার প্রতিক্রিয়াশীল হওয়ার জন্য যদি আপনার বিন্যাসের প্রয়োজন হয় (উদাহরণস্বরূপ ছোট মোবাইল ফোনে কোনও কলাম নেই) আপনি @media
ছোট পর্দার প্রস্থগুলির জন্য সাদামাটা ব্লক বিন্যাসে ফিরে পড়ার জন্য একটি কোয়েরি ব্যবহার করতে পারেন - এটি আপনি ব্যবহার করেন <table>
বা অন্য কোনও ক্ষেত্রে এটি কাজ করেdisplay: table
উপাদান ।
3. display:inline block
একটি নেতিবাচক মার্জিন হ্যাক সঙ্গে।
আরেকটি বিকল্প ব্যবহার করা হয় display:inline block
।
উদাহরণ: http://jsbin.com/ovuqes/2/edit
প্রাসঙ্গিক এইচটিএমএল: (div
ট্যাগগুলিরমধ্যে ফাঁকের অভাবেতাৎপর্যপূর্ণ!)
<div class="parent"><div><div>column 1</div></div><div><div>column 2</div></div></div>
প্রাসঙ্গিক CSS:
.parent {
position: relative; width: 100%; white-space: nowrap; overflow: hidden;
}
.parent>div {
display:inline-block; width:50%; white-space:normal; vertical-align:top;
}
.parent>div>div {
padding-bottom: 32768px; margin-bottom: -32768px;
}
এটি সামান্য জটিল, এবং নেতিবাচক মার্জিনের অর্থ কলামগুলির "সত্য" নীচের অংশটি অস্পষ্ট। এর পরিবর্তে এর অর্থ আপনি সেই কলামগুলির নীচের অংশের তুলনায় কোনও কিছু রাখতে পারবেন না কারণ এটি কেটে গেছে overflow: hidden
। নোট করুন যে ইনলাইন-ব্লকগুলি ছাড়াও, আপনি ভাসমানগুলির সাথে একই রকম প্রভাব অর্জন করতে পারেন।
টিএল; ডিআর : আপনি যদি আই 9 এবং তার চেয়ে বেশি বয়স্ককে উপেক্ষা করতে পারেন তবে ফ্লেক্সবক্স ব্যবহার করুন ; অন্যথায় একটি (সিএসএস) টেবিল চেষ্টা করুন। যদি এই বিকল্পগুলির কোনওটিই আপনার পক্ষে কাজ করে না, তবে নেতিবাচক মার্জিন হ্যাক রয়েছে, তবে এগুলি অদ্ভুত ডিসপ্লে সমস্যাগুলির কারণ হতে পারে যা বিকাশের সময় মিস করা সহজ, এবং আপনার সচেতন হওয়া দরকার এমন বিন্যাসের সীমাবদ্ধতাও রয়েছে।