আমার একটি শিরোনাম উপাদান এবং একটি সামগ্রী উপাদান রয়েছে:
#header
#content
আমি শিরোনামটি নির্দিষ্ট উচ্চতা এবং কনটেন্টের সাথে পর্দায় উপলব্ধ সমস্ত অবশিষ্ট উচ্চতা পূরণ করতে চাই overflow-y: scroll;।
এটি জাভাস্ক্রিপ্ট ছাড়া সম্ভব?
আমার একটি শিরোনাম উপাদান এবং একটি সামগ্রী উপাদান রয়েছে:
#header
#content
আমি শিরোনামটি নির্দিষ্ট উচ্চতা এবং কনটেন্টের সাথে পর্দায় উপলব্ধ সমস্ত অবশিষ্ট উচ্চতা পূরণ করতে চাই overflow-y: scroll;।
এটি জাভাস্ক্রিপ্ট ছাড়া সম্ভব?
উত্তর:
এর কৌশলটি এইচটিএমএল এবং শারীরিক উপাদানগুলিতে 100% উচ্চতা নির্দিষ্ট করে। কিছু ব্রাউজার উচ্চতা গণনা করতে প্যারেন্ট উপাদানগুলিতে (এইচটিএমএল, বডি) সন্ধান করে।
<html>
<body>
<div id="Header">
</div>
<div id="Content">
</div>
</body>
</html>
html, body
{
height: 100%;
}
#Header
{
width: 960px;
height: 150px;
}
#Content
{
height: 100%;
width: 960px;
}
সমস্ত উত্তরগুলি ভুলে যান, সিএসএসের এই লাইনটি আমার জন্য 2 সেকেন্ডে কাজ করেছিল:
height:100vh;
1vh ব্রাউজারের পর্দার উচ্চতার 1%
প্রতিক্রিয়াশীল লেআউট স্কেলিংয়ের জন্য, আপনি এটি ব্যবহার করতে পারেন:
min-height: 100vh
[আপডেট নভেম্বর 2018] মন্তব্যে উল্লিখিত হিসাবে, ন্যূনতম উচ্চতা ব্যবহার করা পুনরায় নকশার বিষয়ে সমস্যা এড়াতে পারে
[আপডেট এপ্রিল 2018] মন্তব্যে যেমন উল্লেখ করা হয়েছে, ২০১১ সালে যখন প্রশ্ন জিজ্ঞাসা করা হয়েছিল, সমস্ত ব্রাউজারগুলি ভিউপোর্ট ইউনিটকে সমর্থন করে না। অন্য উত্তরগুলি তখন এর সমাধানগুলি ছিল - vmaxএখনও আইই তে সমর্থিত নয়, তাই এটি এখনও সবার জন্য সেরা সমাধান নাও হতে পারে।
min-height: 100vhএকটি অনেক ভাল হবে। এটি প্রতিক্রিয়াশীল ডিজাইনের জন্যও স্কেল করবে।
আসলে সর্বোত্তম পন্থা হ'ল:
html {
height:100%;
}
body {
min-height:100%;
}
এটি আমার জন্য সবকিছু সমাধান করে এবং এটি আমার পাদলেখ নিয়ন্ত্রণ করতে সহায়তা করে এবং পৃষ্ঠা নিচে স্ক্রল করা হচ্ছে না কেন এটি স্থির পাদলেখ থাকতে পারে।
প্রযুক্তিগত সমাধান - সম্পাদিত
Icallyতিহাসিকভাবে, 'উচ্চতা' সবচেয়ে সহজ 'প্রস্থের' সাথে তুলনা করে ছড়িয়ে ছিটিয়ে থাকা জিনিস। সিএসএস যেহেতু <body>স্টাইলিংয়ের জন্য ফোকাস করে । উপরের কোড - আমরা দিয়েছি <html>এবং <body>একটি উচ্চতা। এইখানেই যাদু ছবিতে আসে - যেহেতু প্লে টেবিলটিতে আমাদের 'ন্যূনতম উচ্চতা' রয়েছে, তাই আমরা ব্রাউজারকে বলছি যে <body>এর চেয়েও উচ্চতর <html>কারণ <body>ন্যূনতম উচ্চতা ধরে। এর ফলে, <body>ওভাররাইড করতে দেয় <html>কারণ <html>উচ্চতা ইতিমধ্যে ছিল। অন্য কথায়, আমরা <html>টেবিলটি বন্ধ "ব্রম্প" করতে ব্রাউজারটিকে ট্রিক করছি , যাতে আমরা স্বাধীনভাবে স্টাইল করতে পারি।
min-heightএবং কেন height?
<body>স্টাইলিংয়ের জন্য ফোকাস করে । এই কোড: আমরা দিয়েছি <html>এবং <body>একটি উচ্চতা। এইখানেই যাদুটি ছবিতে আসে - যেহেতু প্লে টেবিলটিতে আমাদের 'ন্যূনতম উচ্চতা' রয়েছে, তাই আমরা সার্ভারকে বলছি যে <body>এর চেয়েও উচ্চতর <html>কারণ <body>ন্যূনতম উচ্চতা ধরে। এর ফলে, <body>ওভাররাইড করতে দেয় <html>কারণ <html>উচ্চতা ইতিমধ্যে ছিল। অন্য কথায়, আমরা <html>টেবিলের বাইরে "বাম্প" করতে সার্ভারটিকে ট্রিক করছি , যাতে আমরা স্বাধীনভাবে স্টাইল করতে পারি।
আপনি ন্যূনতম-উচ্চতার সম্পত্তিতে vh ব্যবহার করতে পারেন।
min-height: 100vh;
আপনি কীভাবে মার্জিনটি ব্যবহার করছেন তার উপর নির্ভর করে আপনি নীচের মতো কাজ করতে পারেন ...
min-height: calc(100vh - 10px) //Considering you're using some 10px margin top on an outside element
গৃহীত সমাধানটি আসলে কাজ করবে না। আপনি লক্ষ্য করবেন যে সামগ্রীটি divতার পিতামাতার উচ্চতার সমান হবে body। সুতরাং bodyউচ্চতা 100%নির্ধারণ করা এটি ব্রাউজার উইন্ডোর উচ্চতার সমান সেট করবে। ধরা যাক ব্রাউজার উইন্ডোটি 768pxউচ্চতায় ছিল , সামগ্রীটির divউচ্চতা সেট করে 100%, divএর উচ্চতা ঘুরে ফিরে আসবে 768px। সুতরাং, আপনি হেডার DIV আছে সত্তা দিয়ে শেষ হবে 150pxএবং কন্টেন্ট DIV আছে হচ্ছে 768px। শেষে আপনার 150pxপৃষ্ঠার নীচের অংশে লিখিত সামগ্রী থাকবে । অন্য সমাধানের জন্য, এই লিঙ্কটি দেখুন।
এইচটিএমএল 5 দিয়ে আপনি এটি করতে পারেন:
সিএসএস:
body, html{ width:100%; height:100%; padding: 0; margin: 0;}
header{ width:100%; height: 70px; }
section{ width: 100%; height: calc(100% - 70px);}
এইচটিএমএল:
<header>blabablalba </header>
<section> Content </section>
আমার জন্য, পরবর্তীটি ভাল কাজ করেছে:
আমি একটি ডিভিডিতে শিরোলেখ এবং সামগ্রীটি মোড়ানো করেছি
<div class="main-wrapper">
<div class="header">
</div>
<div class="content">
</div>
</div>
আমি এই রেফারেন্সটি ফ্লেক্সবক্সের সাহায্যে উচ্চতা পূরণ করতে ব্যবহার করেছি। সিএসএস এভাবে চলে:
.main-wrapper {
display: flex;
flex-direction: column;
min-height: 100vh;
}
.header {
flex: 1;
}
.content {
flex: 1;
}
ফ্লেক্সবক্স কৌশল সম্পর্কে আরও তথ্যের জন্য, রেফারেন্সটি দেখুন
আপনি পিতামাতাকে সেট করতে পারেন display: inline। Http://codepen.io/tommymarshall/pen/cECyH দেখুন
এইচটিএমএল এবং দৈহিক দৈর্ঘ্যের উচ্চতাও 100% তে সেট করা নিশ্চিত হয়ে নিন।
গৃহীত উত্তর কার্যকর হয় না। এবং সর্বোচ্চ ভোট দেওয়া উত্তর প্রকৃত প্রশ্নের উত্তর দেয় না। একটি নির্দিষ্ট পিক্সেল উচ্চতার শিরোলেখ এবং ব্রাউজারের অবশিষ্ট প্রদর্শনে একটি ফিলার এবং owflow হিসাবে স্ক্রোল করুন। এখানে একটি সমাধান যা নিখরচায় অবস্থান নির্ধারণ করে বাস্তবে কাজ করে। আমি এটিও ধরে নিয়েছি যে শিরোনামটির উচ্চতাটি জানা আছে, প্রশ্নের মধ্যে "স্থির শিরোনাম" এর শব্দ দ্বারা। আমি এখানে উদাহরণ হিসাবে 150px ব্যবহার করি:
এইচটিএমএল:
<html>
<body>
<div id="Header">
</div>
<div id="Content">
</div>
</body>
</html>
সিএসএস: (শুধুমাত্র ভিজ্যুয়াল এফেক্টের জন্য পটভূমি রঙ যুক্ত করা)
#Header
{
height: 150px;
width: 100%;
background-color: #ddd;
}
#Content
{
position: absolute;
width: 100%;
top: 150px;
bottom: 0;
background-color: #aaa;
overflow-y: scroll;
}
আরো বিস্তারিত টি দেখতে কিভাবে এই কাজ, ভিতরে প্রকৃত কন্টেন্ট সঙ্গে #Content, এই কটাক্ষপাত আছে jsfiddle , বুটস্ট্র্যাপ সারি এবং কলাম ব্যবহার করে।
bottomসম্পত্তি নিশ্চিত করুন যে প্রণীত #Contentথাকার বিষয়টি মতেই পৃষ্ঠার শেষে আটকে। আমি আপনাকে এটি ব্যাখ্যা করার জন্য সময় দেওয়ার প্রশংসা করি।
দয়া করে আমাকে এখানে আমার 5 সেন্ট যুক্ত করুন এবং একটি ধ্রুপদী সমাধান অফার করুন:
html {height:100%;}
body {height:100%; margin:0;}
#idOuter {position:relative; width:100%; height:100%;}
#idHeader {position:absolute; left:0; right:0; border:solid 3px red;}
#idContent {position:absolute; overflow-y:scroll; left:0; right:0; border:solid 3px green;}
<div id="idOuter">
<div id="idHeader" style="height:30px; top:0;">Header section</div>
<div id="idContent" style="top:36px; bottom:0;">Content section</div>
</div>
এটি সমস্ত ব্রাউজারে কোনও স্ক্রিপ্ট, কোনও ফ্লেক্সে কাজ করবে। পূর্ণ পৃষ্ঠা মোডে স্নিপেট খুলুন এবং ব্রাউজারের আকার পরিবর্তন করুন: পছন্দসই অনুপাতগুলি পূর্ণ স্ক্রিন মোডেও সংরক্ষণ করা হয়।
idHeader.heightএবং idContent.topসীমানা অন্তর্ভুক্ত করার জন্য সামঞ্জস্য করা হয় এবং সীমানা ব্যবহার না করা হলে একই মান থাকা উচিত। অন্যথায় উপাদানগুলি ভিউপোর্ট থেকে সরিয়ে ফেলবে, যেহেতু গণনা করা প্রস্থে সীমানা, মার্জিন এবং / অথবা প্যাডিং অন্তর্ভুক্ত নয়।left:0; right:0; দ্বারা প্রতিস্থাপন করা যেতে পারে width:100%যদি কোনও সীমানা ব্যবহার না করা হয় তবে একই কারণে ।padding-topএবং / অথবা
padding-bottomবৈশিষ্ট্য যুক্ত করতে হবে #idOuter।আমার উত্তরটি সম্পূর্ণ করতে, এখানে পাদচরণ লেআউটটি রয়েছে:
html {height:100%;}
body {height:100%; margin:0;}
#idOuter {position:relative; width:100%; height:100%;}
#idContent {position:absolute; overflow-y:scroll; left:0; right:0; border:solid 3px green;}
#idFooter {position:absolute; left:0; right:0; border:solid 3px blue;}
<div id="idOuter">
<div id="idContent" style="bottom:36px; top:0;">Content section</div>
<div id="idFooter" style="height:30px; bottom:0;">Footer section</div>
</div>
এবং এখানে উভয় শিরোলেখ এবং পাদচরণ সহ লেআউটটি রয়েছে:
html {height:100%;}
body {height:100%; margin:0;}
#idOuter {position:relative; width:100%; height:100%;}
#idHeader {position:absolute; left:0; right:0; border:solid 3px red;}
#idContent {position:absolute; overflow-y:scroll; left:0; right:0; border:solid 3px green;}
#idFooter {position:absolute; left:0; right:0; border:solid 3px blue;}
<div id="idOuter">
<div id="idHeader" style="height:30px; top:0;">Header section</div>
<div id="idContent" style="top:36px; bottom:36px;">Content section</div>
<div id="idFooter" style="height:30px; bottom:0;">Footer section</div>
</div>
আপনার 9 বা নীচে সমর্থন করার প্রয়োজন না হলে আমি ফ্লেক্সবক্স ব্যবহার করব would
body { display: flex; flex-direction: column; }
.header { height: 70px; }
.content { flex: 1 1 0 }
পুরো পৃষ্ঠাটি পূরণ করার জন্য আপনাকে শরীরও পেতে হবে
body, html{ width:100%; height:100%; padding: 0; margin: 0;}
সিএসএস প্লাই | ক্রস ব্রাউজার স্থির শিরোনাম / পাদচরণ / কেন্দ্রিক একক কলাম লেআউট
সিএসএস ফ্রেম, সংস্করণ 2: উদাহরণ 2, নির্দিষ্ট প্রস্থ | 456 বেরিয়া স্ট্রিট
একটি গুরুত্বপূর্ণ বিষয় হ'ল এটি সহজ শোনার পরেও, আপনার সিএসএস ফাইলে anুকে কিছুটা কুৎসিত কোড আসবে যাতে এরূপ প্রভাব পাওয়া যায়। দুর্ভাগ্যক্রমে, এটি সত্যই একমাত্র বিকল্প।
আমি এখনও অবধি সবচেয়ে ভাল সমাধানটি পাতার নীচে একটি পাদলেখক উপাদান সেট করা এবং তারপরে ফুটারের অফসেটের পার্থক্য এবং আমাদের যে উপাদানটি প্রসারিত করতে হবে তা মূল্যায়ন করা। যেমন
<div id="contents"></div>
<div id="footer"></div>
#footer {
position: fixed;
bottom: 0;
width: 100%;
}
var contents = $('#contents');
var footer = $('#footer');
contents.css('height', (footer.offset().top - contents.offset().top) + 'px');
আপনি প্রতিটি উইন্ডো পুনরায় আকারে সামগ্রীর উপাদানটির উচ্চতা আপডেট করতে পছন্দ করতে পারেন, তাই ...
$(window).on('resize', function() {
contents.css('height', (footer.offset().top -contents.offset().top) + 'px');
});
আপনি কি এরকম কিছু চেষ্টা করেছেন?
সিএসএস:
.content {
height: 100%;
display: block;
}
এইচটিএমএল:
<div class=".content">
<!-- Content goes here -->
</div>