HTML এ একটি বিষয়বস্তু ডিভ দিয়ে অবশিষ্ট স্ক্রীন স্পেস পূরণ করা

CSS

সম্পূর্ণ উচ্চতা বিষয়বস্তুর জন্য বিন্যাস অপ্টিমাইজ করা

একটি ওয়েব অ্যাপ্লিকেশন তৈরি করা যা কার্যকরভাবে সমগ্র স্ক্রীন স্পেস ব্যবহার করে একটি সাধারণ চ্যালেঞ্জ। বিষয়বস্তু সম্পূর্ণ স্ক্রিনের উচ্চতা পূরণ করে তা নিশ্চিত করার জন্য, বিশেষ করে যখন একটি গতিশীল শিরোনাম থাকে, তখন সতর্ক পরিকল্পনা এবং বাস্তবায়ন প্রয়োজন। হেডারে প্রায়ই লোগো এবং অ্যাকাউন্টের তথ্যের মতো প্রয়োজনীয় উপাদান থাকে এবং এর উচ্চতা পরিবর্তিত হতে পারে।

লক্ষ্য হল টেবিলের উপর নির্ভর না করে কন্টেন্ট ডিভকে অবশিষ্ট স্ক্রীন স্পেস দখল করা। এটি কঠিন হতে পারে, বিশেষ করে যখন বিষয়বস্তু ডিভ-এর ভিতরের উপাদানগুলিকে শতাংশের উচ্চতার সাথে মানিয়ে নিতে হবে। আধুনিক CSS কৌশলগুলি ব্যবহার করে এই লেআউটটি কীভাবে অর্জন করা যায় তা এই নিবন্ধটি অনুসন্ধান করে।

আদেশ বর্ণনা
flex-direction: column; ফ্লেক্স কন্টেইনারের প্রধান অক্ষটিকে উল্লম্ব হতে সেট করে, বাচ্চাদের উপরে থেকে নীচে পর্যন্ত স্ট্যাক করে।
flex: 1; ফ্লেক্স আইটেমকে বাড়তে দেয় এবং ফ্লেক্স পাত্রের মধ্যে উপলব্ধ স্থান পূরণ করতে দেয়।
grid-template-rows: auto 1fr; দুটি সারি সহ একটি গ্রিড বিন্যাস সংজ্ঞায়িত করে, যেখানে প্রথম সারির একটি স্বয়ংক্রিয় উচ্চতা থাকে এবং দ্বিতীয় সারি অবশিষ্ট স্থান নেয়।
overflow: auto; প্রয়োজন অনুযায়ী স্ক্রলবার যোগ করে কন্টেন্ট কন্টেইনারে উপচে পড়লে স্ক্রলিং সক্ষম করে।
height: 100vh; একটি উপাদানের উচ্চতা ভিউপোর্ট উচ্চতার 100% এ সেট করে।
grid-template-rows একটি গ্রিড বিন্যাসে প্রতিটি সারির আকার নির্দিষ্ট করে।
display: flex; একটি ফ্লেক্স কন্টেইনার সংজ্ঞায়িত করে, এটির বাচ্চাদের জন্য ফ্লেক্সবক্স লেআউট মডেল সক্ষম করে।

আধুনিক CSS লেআউট টেকনিক ব্যবহার করা

প্রথম স্ক্রিপ্টে, আমরা ব্যবহার করি করতে a অবশিষ্ট পর্দা স্থান পূরণ করুন। দ্য ক্লাস সেট করা হয় display: flex এবং . এটি শিরোনাম এবং বিষয়বস্তু উল্লম্বভাবে স্ট্যাক করে। হেডার একটি নির্দিষ্ট উচ্চতা আছে, যখন বিষয়বস্তু ব্যবহার করে অবশিষ্ট স্থান পূরণ করতে। এই পদ্ধতিটি নিশ্চিত করে যে বিষয়বস্তু ডিভ গতিশীলভাবে কোনো অবশিষ্ট উচ্চতা দখল করতে সামঞ্জস্য করে, হেডারের উচ্চতা নির্বিশেষে। দ্য ওভারফ্লো সমস্যা ছাড়াই একটি পরিচ্ছন্ন বিন্যাস বজায় রেখে, যদি বিষয়বস্তু দর্শনযোগ্য এলাকা ছাড়িয়ে যায় তবে বৈশিষ্ট্য সামগ্রী ডিভিকে স্ক্রোলযোগ্য হতে দেয়।

দ্বিতীয় স্ক্রিপ্টে, লেআউট জন্য নিযুক্ত করা হয়. দ্য ক্লাস সেট করা হয় সঙ্গে grid-template-rows: auto 1fr. এটি দুটি সারি সহ একটি গ্রিড তৈরি করে: প্রথম সারি (শিরোনাম) স্বয়ংক্রিয়ভাবে তার উচ্চতা সামঞ্জস্য করে এবং দ্বিতীয় সারি (বিষয়বস্তু) অবশিষ্ট স্থান পূরণ করে। ফ্লেক্সবক্স উদাহরণের মতো, বিষয়বস্তু ডিভিতে একটি রয়েছে ওভারফ্লো বিষয়বস্তু সুন্দরভাবে পরিচালনা করার জন্য সম্পত্তি। উভয় পদ্ধতিই টেবিলের প্রয়োজনীয়তা দূর করে, একটি নমনীয় এবং প্রতিক্রিয়াশীল ডিজাইন অর্জনের জন্য আধুনিক CSS লেআউট কৌশল ব্যবহার করে যা বিভিন্ন শিরোনামের উচ্চতার সাথে সামঞ্জস্য করে এবং সামগ্রীটি পৃষ্ঠার বাকি অংশ পূরণ করে তা নিশ্চিত করে।

ফ্লেক্সবক্স ব্যবহার করে একটি ডিভ ফিল অবশিষ্ট স্ক্রীন স্পেস তৈরি করুন

এইচটিএমএল এবং সিএসএস ফ্লেক্সবক্স ব্যবহার করে

<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <title>Flexbox Layout</title>
  <style>
    body, html {
      margin: 0;
      height: 100%;
    }
    .container {
      display: flex;
      flex-direction: column;
      height: 100vh;
    }
    .header {
      background-color: #f8f9fa;
      padding: 10px;
    }
    .content {
      flex: 1;
      background-color: #e9ecef;
      overflow: auto;
    }
  </style>
</head>
<body>
  <div class="container">
    <div class="header">
      <h1>Header</h1>
    </div>
    <div class="content">
      <p>Content goes here...</p>
    </div>
  </div>
</body>
</html>

অবশিষ্ট স্ক্রীন স্পেস পূরণ করতে CSS গ্রিড ব্যবহার করা

গ্রিড লেআউট ব্যবহার করে HTML এবং CSS

<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <title>Grid Layout</title>
  <style>
    body, html {
      margin: 0;
      height: 100%;
    }
    .container {
      display: grid;
      grid-template-rows: auto 1fr;
      height: 100vh;
    }
    .header {
      background-color: #f8f9fa;
      padding: 10px;
    }
    .content {
      background-color: #e9ecef;
      overflow: auto;
    }
  </style>
</head>
<body>
  <div class="container">
    <div class="header">
      <h1>Header</h1>
    </div>
    <div class="content">
      <p>Content goes here...</p>
    </div>
  </div>
</body>
</html>

সম্পূর্ণ উচ্চতার বিষয়বস্তু লেআউটের জন্য উন্নত কৌশল

একটি নিশ্চিত করার জন্য আরেকটি কার্যকর পদ্ধতি ব্যবহার করে অবশিষ্ট স্ক্রীন স্পেস পূরণ করে সাথে একত্রে ইউনিট . দ্য vh ইউনিটটি ভিউপোর্টের উচ্চতার শতাংশের প্রতিনিধিত্ব করে, এটি প্রতিক্রিয়াশীল ডিজাইনের জন্য উপযোগী করে তোলে। কন্টেন্ট ডিভ এর উচ্চতা সেট করে , আপনি হেডারের উচ্চতার উপর ভিত্তি করে গতিশীলভাবে উচ্চতা সামঞ্জস্য করতে পারেন। এই পদ্ধতিটি নির্দিষ্ট বা পরিচিত উচ্চতার সাথে শিরোনামগুলির জন্য ভাল কাজ করে, নিশ্চিত করে যে বিষয়বস্তু ডিভ সর্বদা অবশিষ্ট স্থান পূরণ করে। উপরন্তু, ব্যবহার করে ইউনিটগুলি বিভিন্ন স্ক্রিনের আকার জুড়ে সামঞ্জস্যপূর্ণ বিন্যাস আচরণ বজায় রাখতে সহায়তা করে।

আরও জটিল লেআউটের জন্য, জাভাস্ক্রিপ্টকে গতিশীলভাবে উপাদানগুলির উচ্চতা গণনা এবং সামঞ্জস্য করতে নিযুক্ত করা যেতে পারে। উইন্ডোর রিসাইজ ইভেন্টে ইভেন্ট শ্রোতাদের সংযুক্ত করে, যখনই উইন্ডোর আকার পরিবর্তন হয় তখন আপনি বিষয়বস্তু ডিভের উচ্চতা পুনরায় গণনা করতে পারেন। এই পদ্ধতিটি বৃহত্তর নমনীয়তা প্রদান করে এবং বিভিন্ন হেডার উচ্চতা এবং গতিশীল বিষয়বস্তু পরিচালনা করতে পারে। CSS এর সাথে JavaScript একত্রিত করা নিশ্চিত করে যে আপনার লেআউট প্রতিক্রিয়াশীল এবং বিভিন্ন স্ক্রীনের আকার এবং বিষয়বস্তু পরিবর্তনের সাথে মানিয়ে নিতে পারে, যা ওয়েব অ্যাপ্লিকেশনগুলিতে পূর্ণ-উচ্চতা বিষয়বস্তুর ডিভের জন্য একটি শক্তিশালী সমাধান প্রদান করে।

  1. কিভাবে আমি গতিশীল উচ্চতার জন্য calc() ফাংশন ব্যবহার করতে পারি?
  2. দ্য ফাংশন আপনাকে CSS সম্পত্তির মান নির্ধারণ করতে গণনা করতে দেয়, যেমন একটি 50px হেডারের জন্য অ্যাকাউন্ট করতে।
  3. CSS এ vh ইউনিট কি?
  4. দ্য ইউনিট ভিউপোর্ট উচ্চতা জন্য দাঁড়িয়েছে, যেখানে ভিউপোর্টের উচ্চতার 1% সমান, এটি প্রতিক্রিয়াশীল ডিজাইনের জন্য উপযোগী করে তোলে।
  5. আমি কিভাবে গতিশীল হেডার উচ্চতা পরিচালনা করব?
  6. হেডারের উচ্চতা পরিমাপ করতে JavaScript ব্যবহার করুন এবং সেই অনুযায়ী বিষয়বস্তুর ডিভের উচ্চতা সামঞ্জস্য করুন, নিশ্চিত করুন যে এটি গতিশীলভাবে অবশিষ্ট স্থান পূরণ করে।
  7. ফ্লেক্সবক্স এবং গ্রিড একত্রিত করা যেতে পারে?
  8. হ্যাঁ, আপনি একত্রিত করতে পারেন এবং একই প্রকল্পের মধ্যে লেআউটগুলি বিভিন্ন লেআউটের প্রয়োজনীয়তার জন্য তাদের শক্তিগুলিকে কাজে লাগাতে।
  9. আমি কিভাবে বিষয়বস্তু ডিভিতে স্ক্রোলযোগ্যতা নিশ্চিত করব?
  10. বিষয়বস্তু div এর সেট করুন সম্পত্তি যখন বিষয়বস্তু div এর উচ্চতা অতিক্রম করে তখন স্ক্রলবার যোগ করতে।
  11. লেআউট সামঞ্জস্যের জন্য জাভাস্ক্রিপ্ট ব্যবহার করার সুবিধাগুলি কী কী?
  12. জাভাস্ক্রিপ্ট লেআউটের প্রতিক্রিয়াশীলতা বাড়াতে, গতিশীল বিষয়বস্তু এবং বিভিন্ন উপাদানের আকার পরিচালনার জন্য রিয়েল-টাইম সমন্বয় এবং নমনীয়তা প্রদান করে।
  13. লেআউটের জন্য টেবিল ব্যবহার করা এড়ানো কি সম্ভব?
  14. হ্যাঁ, আধুনিক সিএসএস লেআউট কৌশল পছন্দ করে এবং প্রথাগত টেবিল-ভিত্তিক লেআউটের তুলনায় আরো নমনীয় এবং প্রতিক্রিয়াশীল সমাধান অফার করে।
  15. সিএসএস গ্রিড ব্যবহার করে আমি কীভাবে একটি ডিভ পূরণ করতে পারি?
  16. গ্রিড ধারক সেট করুন , দ্বিতীয় সারি (সামগ্রী) এর সাথে সেট করা হয়েছে অবশিষ্ট উচ্চতা পূরণ করতে।
  17. 100vh ইউনিট পূর্ণ-উচ্চতার লেআউটে কী ভূমিকা পালন করে?
  18. দ্য ইউনিটটি ভিউপোর্টের সম্পূর্ণ উচ্চতাকে প্রতিনিধিত্ব করে, উপাদানগুলিকে ভিউপোর্টের আকারের উপর ভিত্তি করে প্রতিক্রিয়াশীলভাবে স্কেল করার অনুমতি দেয়।
  19. আমি কি প্রতিক্রিয়াশীল লেআউটের জন্য মিন-উচ্চতা ব্যবহার করতে পারি?
  20. হ্যাঁ, ব্যবহার করে নিশ্চিত করে যে একটি উপাদান একটি ন্যূনতম উচ্চতা বজায় রাখে, যা বিষয়বস্তু ওভারফ্লো পরিচালনা করতে এবং লেআউটের সামঞ্জস্য বজায় রাখতে সাহায্য করতে পারে।

লেআউট কৌশলগুলি মোড়ানো

যেমন আধুনিক সিএসএস কৌশলগুলি ব্যবহার করে এবং , ওয়েব ডেভেলপাররা কার্যকরভাবে লেআউট তৈরি করতে পারে যেখানে একটি বিষয়বস্তু ডিভ অবশিষ্ট স্ক্রীন স্পেস পূরণ করে, প্রতিক্রিয়াশীলতা এবং অভিযোজনযোগ্যতা নিশ্চিত করে। এই পদ্ধতিগুলি পুরানো টেবিল-ভিত্তিক লেআউটগুলির প্রয়োজনীয়তা দূর করে এবং ডিজাইনে আরও নমনীয়তা প্রদান করে।

সিএসএস ইউনিটের সমন্বয় এবং ফাংশন মত গতিশীল সামঞ্জস্যের জন্য জাভাস্ক্রিপ্টের সাথে লেআউটের প্রতিক্রিয়াশীলতা আরও উন্নত করতে পারে। এটি বিভিন্ন ডিভাইস এবং স্ক্রীন সাইজ জুড়ে বিরামহীন ব্যবহারকারীর অভিজ্ঞতা নিশ্চিত করে, ওয়েব অ্যাপ্লিকেশনটিকে আরও শক্তিশালী এবং ব্যবহারকারী-বান্ধব করে তোলে।