সম্প্রসারিত #down
সন্তানের অবশিষ্ট স্থান পূরণ করার জন্য #container
ব্রাউজার সমর্থনের আপনি অর্জন কিনা করতে ইচ্ছুক তার উপর নির্ভর করে বিভিন্ন উপায়ে মাধ্যমে এটি করা সম্ভব #up
একটি নির্ধারিত উচ্চতা হয়েছে।
নমুনা
.container {
width: 100px;
height: 300px;
border: 1px solid red;
float: left;
}
.up {
background: green;
}
.down {
background: pink;
}
.grid.container {
display: grid;
grid-template-rows: 100px;
}
.flexbox.container {
display: flex;
flex-direction: column;
}
.flexbox.container .down {
flex-grow: 1;
}
.calc .up {
height: 100px;
}
.calc .down {
height: calc(100% - 100px);
}
.overflow.container {
overflow: hidden;
}
.overflow .down {
height: 100%;
}
<div class="grid container">
<div class="up">grid
<br />grid
<br />grid
<br />
</div>
<div class="down">grid
<br />grid
<br />grid
<br />
</div>
</div>
<div class="flexbox container">
<div class="up">flexbox
<br />flexbox
<br />flexbox
<br />
</div>
<div class="down">flexbox
<br />flexbox
<br />flexbox
<br />
</div>
</div>
<div class="calc container">
<div class="up">calc
<br />calc
<br />calc
<br />
</div>
<div class="down">calc
<br />calc
<br />calc
<br />
</div>
</div>
<div class="overflow container">
<div class="up">overflow
<br />overflow
<br />overflow
<br />
</div>
<div class="down">overflow
<br />overflow
<br />overflow
<br />
</div>
</div>
গ্রিড
সিএসএসের grid
বিন্যাসটি আরও একটি বিকল্প প্রস্তাব করে, যদিও এটি ফ্লেক্সবক্স মডেলের মতো সোজা নাও হতে পারে। তবে এটির জন্য কেবল ধারক উপাদানটির স্টাইলিং প্রয়োজন:
.container { display: grid; grid-template-rows: 100px }
grid-template-rows
একটি নির্দিষ্ট 100px উচ্চতা হিসেবে প্রথম সারি সংজ্ঞায়িত, এবং থাকা সারি স্বয়ংক্রিয়ভাবে অবশিষ্ট স্থান পূরণ করার জন্য প্রসারিত হবে।
আমি নিশ্চিত যে আই 11 এর -ms-
উপসর্গ প্রয়োজন , তাই আপনি সমর্থন করতে চান এমন ব্রাউজারগুলিতে কার্যকারিতাটি বৈধতা নিশ্চিত করে নিন।
flexbox
সিএসএস 3 এর ফ্লেক্সিবল বক্স লেআউট মডিউল ( flexbox
) এখন ভাল-সমর্থিত এবং কার্যকর করা খুব সহজ হতে পারে। কারণ এটি নমনীয়, এমনকি এটি যখন কাজ করে যখন #up
একটি সংজ্ঞায়িত উচ্চতা না থাকে works
#container { display: flex; flex-direction: column; }
#down { flex-grow: 1; }
এটি লক্ষণীয় গুরুত্বপূর্ণ যে কিছু ফ্লেক্সবক্স বৈশিষ্ট্যের জন্য আইই 10 এবং আই 1111 সমর্থনটি বগি হতে পারে এবং আই 9 বা তার নীচে কোনও সমর্থন নেই।
গণনা উচ্চতা
আর একটি সহজ সমাধান হ'ল সিএসএস 3calc
ফাংশনাল ইউনিট ব্যবহার করা , যেমন আলভারো তার উত্তরে উল্লেখ করেছে তবে এটি প্রথম সন্তানের উচ্চতা একটি জ্ঞাত মান হতে হবে:
#up { height: 100px; }
#down { height: calc( 100% - 100px ); }
এটি বেশ বিস্তৃতভাবে সমর্থিত, কেবলমাত্র উল্লেখযোগ্য ব্যতিক্রমগুলি <= আইই 8 বা সাফারি 5 (কোনও সমর্থন নেই) এবং আই 9 (আংশিক সমর্থন) রয়েছে। রূপান্তর বা বাক্স-ছায়ার সাথে একত্রে ক্যালক ব্যবহার করে কিছু অন্যান্য ইস্যু অন্তর্ভুক্ত থাকে , তাই যদি এটি আপনার উদ্বেগের হয় তবে একাধিক ব্রাউজারে পরীক্ষা করে নিশ্চিত হন।
অন্যান্য বিকল্প
যদি পুরানো সহায়তার প্রয়োজন হয় তবে height:100%;
আপনি #down
একটি ক্যাভ্যাট সহ গোলাপী ডিভ পূর্ণ উচ্চতা তৈরি করতে পারবেন। এটি ধারকটির পক্ষে উপচে পড়বে, কারণ #up
এটি এটিকে নীচে চাপছে।
অতএব, আপনি overflow: hidden;
এটি ঠিক করতে পাত্রে যুক্ত করতে পারেন ।
বিকল্পভাবে, যদি উচ্চতা #up
স্থির হয় তবে আপনি একে একে ধারকটির মধ্যে একেবারে স্থাপন করতে এবং এতে একটি প্যাডিং-টপ যুক্ত করতে পারেন #down
।
এবং, অন্য একটি বিকল্পটি একটি টেবিল প্রদর্শন ব্যবহার করা হবে:
#container { width: 300px; height: 300px; border: 1px solid red; display: table;}
#up { background: green; display: table-row; height: 0; }
#down { background: pink; display: table-row;}