আপনার যা প্রয়োজন তা হ'ল:
1) সীমাবদ্ধ উচ্চতার একটি টেবিল বডি রয়েছে কারণ স্ক্রোলিং উইন্ডোর চেয়ে সামগ্রীগুলি কেবল তখন বড় হয়। তবে tbody
আকার দেওয়া যাবে না এবং এটি করার জন্য আপনাকে এটি প্রদর্শন block
করতে হবে:
tbody {
overflow-y: auto;
display: block;
max-height: 10em; // For example
}
2) সারণী শিরোনাম এবং টেবিলের বডি কলামগুলির প্রস্থটিকে পুনরায় সিঙ্ক করুন কারণ block
এটিকে একটি সম্পর্কযুক্ত উপাদান হিসাবে তৈরি করেছে। এটি করার একমাত্র উপায় হ'ল উভয় ক্ষেত্রে একই কলামের প্রস্থ প্রয়োগ করে সিঙ্ক্রোনাইজেশন অনুকরণ করা ।
তবে, যেহেতু tbody
নিজেই block
এখন একজন, তাই এটি আর কোনওটির মতো আচরণ করতে পারে না table
। যেহেতু আপনাকে table
কলামগুলি সঠিকভাবে প্রদর্শন করতে আপনার এখনও আচরণ প্রয়োজন , তাই সমাধানটি হ'ল আপনার প্রতিটি সারি স্বতন্ত্র হিসাবে প্রদর্শিত হবে table
:
thead {
display: table;
width: 100%; // Fill the containing table
}
tbody tr {
display: table;
width: 100%; // Fill the containing table
}
(দ্রষ্টব্য, এই কৌশলটি ব্যবহার করে, আপনি আর সারি জুড়ে বিস্তৃত করতে পারবেন না)।
এটি হয়ে গেলে, আপনি উভয় thead
এবং একই প্রস্থের কলাম প্রস্থগুলি প্রয়োগ করতে পারেন tbody
। আপনি এটি করতে পারেন নি:
- প্রতিটি কলামের জন্য পৃথকভাবে (নির্দিষ্ট সিএসএস ক্লাস বা ইনলাইন স্টাইলিংয়ের মাধ্যমে) যা প্রতিটি টেবিলের উদাহরণ হিসাবে করা বেশ ক্লান্তিকর;
- সমস্ত কলামের জন্য অভিন্নভাবে (
th, td { width: 20%; }
যদি আপনার কাছে 5 টি কলাম থাকে উদাহরণস্বরূপ) যা আরও ব্যবহারিক (প্রতিটি টেবিলের জন্য প্রস্থ নির্ধারণ করার প্রয়োজন নেই) তবে কোনও কলামের গণনার জন্য কাজ করতে পারে না
- স্থির টেবিল বিন্যাসের মাধ্যমে যে কোনও কলামের গণনার জন্য সমান।
আমি শেষ বিকল্পটি পছন্দ করি, যার জন্য যুক্ত করা দরকার:
thead {
table-layout: fixed; // Same layout for all cells
}
tbody tr {
table-layout: fixed; // Same layout for all cells
}
th, td {
width: auto; // Same width for all cells, if table has fixed layout
}
এই প্রশ্নের উত্তর থেকে কাঁটাচামচ করা এখানে একটি ডেমো দেখুন ।