আমার একটি ফুটার সহ একটি সাধারণ 2-কলাম লেআউট আছে যা আমার মার্কআপে ডান এবং বাম উভয় ডিভ সাফ করে। আমার সমস্যাটি হ'ল আমি সমস্ত ব্রাউজারে পৃষ্ঠার নীচে থাকা পাদলেখ পেতে পারি না। যদি বিষয়বস্তু পাদলেখকে নীচে ঠেলে দেয় তবে এটি কাজ করে তবে সবসময় এটি হয় না।
আমার একটি ফুটার সহ একটি সাধারণ 2-কলাম লেআউট আছে যা আমার মার্কআপে ডান এবং বাম উভয় ডিভ সাফ করে। আমার সমস্যাটি হ'ল আমি সমস্ত ব্রাউজারে পৃষ্ঠার নীচে থাকা পাদলেখ পেতে পারি না। যদি বিষয়বস্তু পাদলেখকে নীচে ঠেলে দেয় তবে এটি কাজ করে তবে সবসময় এটি হয় না।
উত্তর:
একটি স্টিকি পাদলেখ পেতে:
একটি আছে <div>
সঙ্গে class="wrapper"
আপনার সামগ্রীর জন্য।
রাইট করার আগে ক্লোজিং </div>
এর wrapper
জায়গা
<div class="push"></div>
।
ঠিক জায়গাটি
বন্ধ হয়ে যাওয়ার পরে ।</div>
wrapper
<div class="footer"></div>
* {
margin: 0;
}
html, body {
height: 100%;
}
.wrapper {
min-height: 100%;
height: auto !important;
height: 100%;
margin: 0 auto -142px; /* the bottom margin is the negative value of the footer's height */
}
.footer, .push {
height: 142px; /* .push must be the same height as .footer */
}
সম্ভবত একটি স্টিকি ফুটার সম্পর্কে সর্বাধিক সুস্পষ্ট এবং অ-হ্যাকি উপায় হ'ল নতুন সিএসএস ভিউপোর্ট ইউনিট ব্যবহার করা ।
উদাহরণস্বরূপ নিম্নলিখিত সাধারণ মার্কআপটি ধরুন:
<header>header goes here</header>
<div class="content">This page has little content</div>
<footer>This is my footer</footer>
যদি শিরোনামটি 80px উঁচু এবং ফুটারটি 40px উঁচু হয়, তবে আমরা বিষয়বস্তু ডিভের উপর একটি একক নিয়ম সহ আমাদের স্টিকি ফুটার তৈরি করতে পারি :
.content {
min-height: calc(100vh - 120px);
/* 80px header + 40px footer = 120px */
}
যার অর্থ: কনটেন্ট ডিভের উচ্চতা ভিউপোর্টের উচ্চতা বিয়োগের কমপক্ষে 100% হতে হবে শিরোনাম এবং পাদচরণের মিলিত উচ্চতা বিয়োগ কর।
এটাই.
... এবং একই কোডটি কীভাবে লভ্য বিষয়বস্তুতে প্রচুর সামগ্রীর সাথে কাজ করে তা এখানে:
বিশেষ দ্রষ্টব্য:
1) হেডার এবং পাদলেখের উচ্চতাটি অবশ্যই জানা উচিত
2) আইই (আইই 8-) এবং অ্যান্ড্রয়েডের পুরানো সংস্করণ (4.4-) ভিউপোর্ট ইউনিট সমর্থন করে না। ( ক্যানিজ )
3) একসময় ওয়েবকিট একটি ক্যালকের নিয়মের মধ্যে ভিউপোর্ট ইউনিটগুলির সাথে সমস্যা ছিল। এটি অবশ্যই স্থির করা হয়েছে ( দেখুন এখানে) ) যাতে কোনও সমস্যা নেই। তবে আপনি যদি কোনও কারণে ক্যালক ব্যবহার এড়াতে চান তবে আপনি এটি ঘৃণিত মার্জিন ব্যবহার করে এবং বাক্স-আকারের সাথে প্যাডিং পেতে পারেন -
তাই ভালো:
display: flex
ফিলিপ ওয়ালটনের স্টিকি ফুটার দ্বারা অনুপ্রাণিত সমাধান ।
এই সমাধানটি কেবল এর জন্য বৈধ :
এটা তোলে উপর ভিত্তি করে তৈরি flex
ডিসপ্লে , ওঠানামা flex-grow
সম্পত্তি, যা একটি উপাদান করার অনুমতি দেয় হত্তয়া পারেন মধ্যে উচ্চতা বা প্রস্থ (যখন flow-direction
সেট করা হয় পারেন column
বাrow
যথাক্রমে), কন্টেইনারে অতিরিক্ত স্থান দখল করতে।
আমরা ইউনিটটিও লাভ করতে চলেছি vh
, যেখানে 1vh
এটি সংজ্ঞায়িত করা হয়েছে :
ভিউপোর্টের উচ্চতার 1/100 তম
সুতরাং এর একটি উচ্চতা 100vh
সম্পূর্ণ ভিউপোর্টের উচ্চতা বিস্তৃত করতে কোনও উপাদানকে বলার একটি সংক্ষিপ্ত উপায়।
আপনি নিজের ওয়েব পৃষ্ঠাকে এভাবে গঠন করবেন:
----------- body -----------
----------------------------
---------- footer ----------
----------------------------
পৃষ্ঠার নীচে ফুটারটি স্টিক করার জন্য, আপনি পৃষ্ঠার নীচের অংশে পাদলেখকে ধাক্কা দেওয়ার জন্য শরীর এবং পাদলেখের মাঝে স্থানটি যতটা বাড়তে চান তা চান।
সুতরাং আমাদের বিন্যাসটি হয়ে যায়:
----------- body -----------
----------------------------
---------- spacer ----------
<- This element must grow in height
----------------------------
---------- footer ----------
----------------------------
body {
margin: 0;
display: flex;
flex-direction: column;
min-height: 100vh;
}
.spacer {
flex: 1;
}
/* make it visible for the purposes of demo */
.footer {
height: 50px;
background-color: red;
}
<body>
<div class="content">Hello World!</div>
<div class="spacer"></div>
<footer class="footer"></footer>
</body>
আপনি এটির সাথে জেএসফিডেলে খেলতে পারেন ।
সচেতন থাকুন যে সাফারিতে সম্পত্তিটির ত্রুটিযুক্ত প্রয়োগ রয়েছেflex-shrink
, যা সামগ্রীগুলি প্রদর্শন করতে প্রয়োজনীয় ন্যূনতম উচ্চতার চেয়ে আইটেমগুলিকে আরও সঙ্কুচিত করতে দেয়। এই সমস্যাটি সমাধান করার আপনাকে সেট করতে হবে flex-shrink
0 থেকে স্পষ্টভাবে সম্পত্তি .content
এবং footer
উপরোক্ত উদাহরণের:
.content { flex-shrink: 0; }
.footer { flex-shrink: 0; }
.Site-content
উপাদানগুলিতে @ ইয়াকোভেল একই ভূমিকা পালন করে spacer
। একে শুধু আলাদাভাবে বলা হয়।
.Site-content
একটি অ্যানালগ .content
আছে .. তবে কিছুই নয়, আমি মামলার জন্য জিজ্ঞাসা করলাম গিসেডো এর সম্পর্কে কিছু নির্দিষ্ট ধারণা আছে, অনুমান করার দরকার নেই
position: absolute
পাতার নীচে ফুটার স্থাপনের জন্য আপনি নিম্নলিখিতগুলি ব্যবহার করতে পারেন , তবে তারপরে নিশ্চিত করুন যে আপনার 2 কলামগুলিতে যথাযথ পরিমাণ রয়েছে margin-bottom
যাতে সেগুলি কখনও ফুটার দ্বারা সংযুক্ত না হয়।
#footer {
position: absolute;
bottom: 0px;
width: 100%;
}
#content, #sidebar {
margin-bottom: 5em;
}
0px
আমি দেখেছি সমস্ত স্টাইলশীটের সমস্ত গুলি ন্যায়সঙ্গত হওয়া উচিত 0
।
এখানে jQuery সহ একটি সমাধান যা একটি কবজির মতো কাজ করে। উইন্ডোটির উচ্চতা শরীরের উচ্চতার চেয়ে বেশি কিনা তা পরীক্ষা করে। যদি এটি হয় তবে এটির জন্য ক্ষতিপূরণের জন্য পাদলেখের মার্জিন-শীর্ষকে পরিবর্তন করে। ফায়ারফক্স, ক্রোম, সাফারি এবং অপেরাতে পরীক্ষিত।
$( function () {
var height_diff = $( window ).height() - $( 'body' ).height();
if ( height_diff > 0 ) {
$( '#footer' ).css( 'margin-top', height_diff );
}
});
যদি আপনার পাদলেখের মধ্যে ইতিমধ্যে একটি মার্জিন-শীর্ষ (50 পিক্সেলের, উদাহরণস্বরূপ) থাকে তবে আপনাকে এর জন্য শেষ অংশটি পরিবর্তন করতে হবে:
css( 'margin-top', height_diff + 50 )
এর জন্য সিএসএস সেট করুন #footer
:
position: absolute;
bottom: 0;
এর পরে আপনি একটি যোগ করার জন্য প্রয়োজন হবে padding
বা margin
আপনার নীচে #sidebar
এবং #content
উচ্চতা মেলে #footer
অথবা যখন তারা ওভারল্যাপ,#footer
তাদের আবরণ হবে।
এছাড়াও, আমি যদি সঠিকভাবে মনে রাখি তবে আই 6 এর সাথে সমস্যা আছে bottom: 0
সিএসএস । আইই 6 এর জন্য আপনাকে জেএস সমাধান ব্যবহার করতে হতে পারে (আপনি যদি আই 6 এর বিষয়ে যত্নশীল হন)।
@Gcedo এর অনুরূপ সমাধান তবে পাদলেখকে নীচে নামানোর জন্য একটি মধ্যবর্তী সামগ্রী যুক্ত করার প্রয়োজন ছাড়াই। আমরা কেবল margin-top:auto
পাদলেখগুলিতে যুক্ত করতে পারি এবং তার উচ্চতা বা উপরের সামগ্রীর উচ্চতা নির্বিশেষে এটিকে পৃষ্ঠার নীচে ঠেলে দেওয়া হবে।
body {
display: flex;
flex-direction: column;
min-height: 100vh;
margin:0;
}
.content {
padding: 50px;
background: red;
}
.footer {
margin-top: auto;
padding:10px;
background: green;
}
<div class="content">
some content here
</div>
<footer class="footer">
some content
</footer>
.content
flex: 1 0 auto;
হ'ল এটিকে বিকাশযোগ্য এবং অ-সঙ্কোচযোগ্য করে তোলার জন্য উপহার দেওয়া, তবে margin-top: auto;
এটি একটি দুর্দান্ত কৌশল যা স্টাইলিং পাদচরণ জড়িত, এটি "অ-সম্পর্কিত" নয় .content
যা দুর্দান্ত। প্রকৃতপক্ষে, আমি ভাবছি কেন এই পদ্ধতির মধ্যে ফ্লেক্স প্রয়োজন ..
display:flex
এটি সরিয়ে
margin:0 auto
কেন্দ্রের ব্লক উপাদানগুলির জন্য বিখ্যাত হিসাবে ) তবে আমাদের কোনও কলামের দিক নেই তাই কোন প্রান্ত নেই উপরে / নীচে সহ অটো। ফ্লেক্সবক্সে উভয় সারি / কলামের দিক রয়েছে;)। এটি সামান্য পার্থক্য, তবে মার্জিনটি ফ্লেক্সবক্সের মধ্যেও উপাদানটিকে সারিবদ্ধ করার জন্য ব্যবহৃত হয় এমনকি এক সারি দিকের মধ্যে আপনি উল্লম্ব সারিবদ্ধ করার জন্য মার্জিন-শীর্ষ / নীচের স্বয়ংক্রিয় ব্যবহার করতে পারেন .. আপনি এখানে আরও পড়তে পারেন: w3.org/TR/css- ফ্লেক্সবক্স -১ / # অটো-মার্জিন
index.html:
<!DOCTYPE html>
<html>
<head>
<link rel="stylesheet" type="text/css" href="main.css" />
</head>
<body>
<div id="page-container">
<div id="content-wrap">
<!-- all other page content -->
</div>
<footer id="footer"></footer>
</div>
</body>
</html>
main.css:
#page-container {
position: relative;
min-height: 100vh;
}
#content-wrap {
padding-bottom: 2.5rem; /* Footer height */
}
#footer {
position: absolute;
bottom: 0;
width: 100%;
height: 2.5rem; /* Footer height */
}
সূত্র: https://www.freecodecamp.org/news/how-to-keep-your-footer-where-it-belongs-59c6aa05c59c/
আমি নিজে মাঝে মাঝে এর সাথে লড়াই করেছি এবং আমি সর্বদা খুঁজে পেলাম যে একে অপরের মধ্যে এই সমস্ত ডিভের সাথে সমাধানটি একটি অগোছালো সমাধান ছিল। আমি এটির সাথে কিছুটা গোলমাল করেছি, এবং আমি ব্যক্তিগতভাবে জানতে পারি যে এটি কাজ করে এবং এটি অবশ্যই সহজতম উপায়গুলির মধ্যে একটি:
html {
position: relative;
}
html, body {
margin: 0;
padding: 0;
min-height: 100%;
}
footer {
position: absolute;
bottom: 0;
}
আমি এটি সম্পর্কে যা পছন্দ করি তা হ'ল কোনও অতিরিক্ত এইচটিএমএল প্রয়োগ করা দরকার না। আপনি কেবল এই সিএসএস যুক্ত করতে পারেন এবং তারপরে যখনই আপনার HTML লিখতে পারেন
যেহেতু গ্রিড সমাধান এখনো উপস্থাপন হয় নি, এখানে এটা মাত্র দুই সাথে আছেন, ঘোষণা জন্য পিতা বা মাতা উপাদান , আমরা যদি নিতে height: 100%
এবং margin: 0
মঞ্জুর জন্য:
html, body {height: 100%}
body {
display: grid; /* generates a block-level grid */
align-content: space-between; /* places an even amount of space between each grid item, with no space at the far ends */
margin: 0;
}
.content {
background: lightgreen;
/* demo / for default snippet window */
height: 1em;
animation: height 2.5s linear alternate infinite;
}
footer {background: lightblue}
@keyframes height {to {height: 250px}}
<div class="content">Content</div>
<footer>Footer</footer>
আইটেমগুলি ক্রস অক্ষ সহ প্রান্তিককরণ পাত্রে সমানভাবে বিতরণ করা হয়। সংলগ্ন আইটেমগুলির প্রতিটি জুটির মধ্যে ব্যবধান একই। প্রথম আইটেমটি মূল-প্রান্তের প্রান্তের সাথে ফ্লাশ হয় এবং শেষ আইটেমটি মূল প্রান্তের প্রান্তের সাথে ফ্লাশ হয়।
সিএসএস:
#container{
width: 100%;
height: 100vh;
}
#container.footer{
float:left;
width:100%;
height:20vh;
margin-top:80vh;
background-color:red;
}
এইচটিএমএল:
<div id="container">
<div class="footer">
</div>
</div>
আপনি যদি পৃষ্ঠার নীচে প্রান্তিকভাবে একটি প্রতিক্রিয়াশীল পাদলেখ খুঁজছেন তবে এটি কৌশলটি করা উচিত, যা সর্বদা ভিউপোর্টের উচ্চতার ৮০% শীর্ষে থাকে।
নিম্নলিখিত পদক্ষেপগুলি ব্যবহার করে যে কোনও রেজোলিউশনে স্টিকি ফুটার ডিভ তৈরি করতে পরম অবস্থান এবং জেড-সূচক ব্যবহার করুন:
position: absolute; bottom: 0;
পছন্দসই উচ্চতা এবং পছন্দসই উচ্চতা তৈরি করুনdiv
যা দিয়ে দেহের সামগ্রীকে আবৃত করেposition: relative; min-height: 100%;
div
ফুটারের উচ্চতা প্লাস প্যাডিংয়ের সমান মূল সামগ্রীটিতে নীচে প্যাডিং যুক্ত করুনz-index
ধারক চেয়ে পাদচরণ তদ্বুর্ধ্ব div
যদি পাদচরণ ছাঁটা হয়এখানে একটি উদাহরণ:
<!doctype html>
<html>
<head>
<title>Sticky Footer</title>
<meta charset="utf-8">
<style>
.wrapper { position: relative; min-height: 100%; }
.footer { position: absolute; bottom:0; width: 100%; height: 200px; padding-top: 100px; background-color: gray; }
.column { height: 2000px; padding-bottom: 300px; background-color: green; }
/* Set the `html`, `body`, and container `div` to `height: 100%` for IE6 */
</style>
</head>
<body>
<div class="wrapper">
<div class="column">
<span>hello</span>
</div>
<div class="footer">
<p>This is a test. This is only a test...</p>
</div>
</div>
</body>
</html>
এই প্রশ্নের জন্য আমি যে উত্তরগুলি দেখেছি, সেগুলির অনেকগুলি চতুর, বাস্তবায়ন করা শক্ত এবং অদক্ষ তাই আমি ভেবেছিলাম যে আমি এটিতে একটি শট নেব এবং নিজের সমাধানটি নিয়ে আসব যা কেবলমাত্র সিএসএস এবং এইচটিএমএল এর একটি ক্ষুদ্র বিট is
html,
body {
height: 100%;
margin: 0;
}
.body {
min-height: calc(100% - 2rem);
width: 100%;
background-color: grey;
}
.footer {
height: 2rem;
width: 100%;
background-color: yellow;
}
<body>
<div class="body">test as body</div>
<div class="footer">test as footer</div>
</body>
এটি ফুটারের উচ্চতা নির্ধারণ করে এবং তারপরে সিএসএস ক্যালক ব্যবহার করে পৃষ্ঠাটি নূন্যতম উচ্চতাটি নীচে থাকা পাদলেখের সাথে থাকতে পারে, আশা করি এটি কিছু লোককে সহায়তা করবে :)
একটি সমাধান বাক্সগুলির জন্য ন্যূনতম উচ্চতা নির্ধারণ করা হবে। দুর্ভাগ্যক্রমে মনে হয় এটি আইআই (আশ্চর্য) দ্বারা ভাল সমর্থন করে না।
এই খাঁটি CSS সমাধানগুলির কোনওটিই ডায়নামিকভাবে পুনরায় আকার দেওয়ার সামগ্রী (কমপক্ষে ফায়ারফক্স এবং সাফারিতে) এর সাথে সঠিকভাবে কাজ করে না যেমন, আপনার যদি ধারক ডিভ, পৃষ্ঠায় একটি পটভূমি সেট থাকে এবং তারপরে ডিভের ভিতরে আকার পরিবর্তন (কয়েকটি সারি যুক্ত করে) সারণি, স্টাইলযুক্ত ক্ষেত্রের নীচের অংশটি টেবিলটি আটকে থাকতে পারে, যেমন আপনার কালো থিমের সাদা অংশের অর্ধেক টেবিল থাকতে পারে এবং অর্ধেক টেবিলটি সম্পূর্ণ সাদা হতে পারে কারণ ফন্টের রঙ এবং পটভূমির রঙ উভয়ই সাদা। এটি মূলত থেরোমোলার পৃষ্ঠাগুলির সাথে অনুপযুক্ত।
নেস্টেড ডিভ মাল্টি-কলাম লেআউটটি একটি কুরুচিপূর্ণ হ্যাক এবং স্টিকারিং পাদলেখের জন্য 100% ন্যূনতম উচ্চতার বডি / ধারক ডিভ একটি কুরুচিপূর্ণ হ্যাক।
সমস্ত ব্রাউজারগুলিতে আমি চেষ্টা করেছি এমন একমাত্র নো স্ক্রিপ্ট সমাধান: থ্যাড (শিরোলেখের জন্য) / টিফুট (পাদলেখের জন্য) / টিডি (কোনও কলামের জন্য সংখ্যক টিডি) এবং 100% উচ্চতা সহ অনেকগুলি সহজ / খাটো টেবিল। তবে এটি সিমেটিক এবং এসইও এর অসুবিধাগুলি অনুধাবন করেছে (টিফুটটি অবশ্যই কারও সামনে উপস্থিত হওয়া উচিত AR
একাধিক ব্যক্তি এই সাধারণ সমস্যার উত্তর এখানে রেখেছেন, তবে আমার কী যুক্তি আছে তা বিবেচনা করে আমার একটা যুক্তি আছে, যতক্ষণ না বুঝেছি আমি কী ভুল করছি how
এটি করার জন্য সবচেয়ে সরল উপায় যেমন উল্লেখ করা হয়েছে তেমন ..
html {
position: relative;
min-height: 100%;
}
body {
background-color: transparent;
position: static;
height: 100%;
margin-bottom: 30px;
}
.site-footer {
position: absolute;
height: 30px;
bottom: 0px;
left: 0px;
right: 0px;
}
তবে সম্পত্তিটি পোস্টগুলিতে উল্লিখিত নয়, সম্ভবত এটি সাধারণত ডিফল্ট হওয়ায় অবস্থান: স্থিতিশীল শরীরের ট্যাগে । পজিশন আপেক্ষিক কাজ করবে না!
আমার ওয়ার্ডপ্রেস থিমটি ডিফল্ট বডি ডিসপ্লেকে ওভাররাইড করেছিল এবং এটি আমাকে দীর্ঘমেয়াদে বিভ্রান্ত করেছিল।
আমি জানি একটি পুরানো থ্রেড, তবে আপনি যদি কোনও প্রতিক্রিয়াশীল সমাধান খুঁজছেন তবে এই jQuery সংযোজনটি সহায়তা করবে:
$(window).on('resize',sticky);
$(document).bind("ready", function() {
sticky();
});
function sticky() {
var fh = $("footer").outerHeight();
$("#push").css({'height': fh});
$("#wrapper").css({'margin-bottom': -fh});
}
সম্পূর্ণ গাইডটি এখানে পাওয়া যাবে: https://pixeldesigns.co.uk/blog/responsive-jquery-sticky-footer/
আমি একটি খুব সাধারণ লাইব্রেরী তৈরি করেছি https://github.com/ravinderpayal/FooterJS
এটি ব্যবহারে খুব সহজ। লাইব্রেরি অন্তর্ভুক্ত করার পরে, কেবল কোডের এই লাইনে কল করুন।
footer.init(document.getElementById("ID_OF_ELEMENT_CONTAINING_FOOTER"));
বিভিন্ন প্যারামিটার / আইডি দিয়ে উপরের ফাংশনটিকে স্মরণ করে পাদদেশগুলিকে গতিশীল পরিবর্তন করা যেতে পারে।
footer.init(document.getElementById("ID_OF_ANOTHER_ELEMENT_CONTAINING_FOOTER"));
দ্রষ্টব্য: - আপনার কোনও সিএসএস পরিবর্তন বা সংযুক্ত করতে হবে না। লাইব্রেরিটি গতিশীল যা সূচিত করে যে পৃষ্ঠাটি লোড করার পরেও যদি পর্দা পরিবর্তন করা হয় তবে এটি ফুটারের অবস্থানটি পুনরায় সেট করবে will আমি এই লাইব্রেরিটি তৈরি করেছি, কারণ সিএসএস কিছুক্ষণের জন্য সমস্যার সমাধান করে তবে ডেস্কটপ থেকে ট্যাবলেট বা বিপরীতে প্রদর্শনের আকার উল্লেখযোগ্যভাবে পরিবর্তিত হয়, তারা হয় সামগ্রীতে ওভারল্যাপ করে বা তারা আর স্টিকি থাকে না।
আর একটি সমাধান হ'ল সিএসএস মিডিয়া ক্যোয়ারীস, তবে এই লাইব্রেরিটি স্বয়ংক্রিয়ভাবে কাজ করে এবং সমস্ত বুনিয়াদি জাভাস্ক্রিপ্ট সমর্থনকারী ব্রাউজার দ্বারা সমর্থিত হয়ে আপনাকে বিভিন্ন আকারের পর্দার জন্য ম্যানুয়ালি বিভিন্ন সিএসএস স্টাইল লিখতে হবে।
সিএসএস সমাধান সম্পাদনা করুন :
@media only screen and (min-height: 768px) {/* or height/length of body content including footer*/
/* For mobile phones: */
#footer {
width: 100%;
position:fixed;
bottom:0;
}
}
এখন, যদি প্রদর্শনের উচ্চতাটি আপনার সামগ্রীর দৈর্ঘ্যের চেয়ে বেশি হয় তবে আমরা পাদলেখগুলি নীচে স্থির করে দেব এবং তা না হলে এটি দেখার জন্য আপনাকে স্বয়ংক্রিয়ভাবে প্রদর্শিত হবে কারণ এটি দেখার জন্য আপনাকে স্ক্রোল করতে হবে।
এবং এটি জাভাস্ক্রিপ্ট / লাইব্রেরির চেয়ে ভাল সমাধান বলে মনে হচ্ছে।
এর আগে এই পৃষ্ঠায় প্রস্তাবিত সমাধানগুলি নিয়ে আমার ভাগ্য ছিল না তবে শেষ পর্যন্ত এই ছোট্ট কৌশলটি কাজ করেছিল। আমি এটিকে অন্য সম্ভাব্য সমাধান হিসাবে অন্তর্ভুক্ত করব।
footer {
position: fixed;
right: 0;
bottom: 0;
left: 0;
padding: 1rem;
background-color: #efefef;
text-align: center;
}
প্রাকৃতিক শিরোলেখ এবং পাদলেখের উচ্চতার জন্য ফ্লেক্স বিন্যাসটি পছন্দ করা হয়। এই ফ্লেক্স সলিউশনটি আধুনিক ব্রাউজারগুলিতে পরীক্ষা করা হয় এবং আসলে আইই 11 তে কাজ করে works
এইচটিএমএল
<body>
<header>
...
</header>
<main>
...
</main>
<footer>
...
</footer>
</body>
সিএসএস
html {
height: 100%;
}
body {
height: 100%;
min-height: 100vh;
overflow-y: auto;
-webkit-overflow-scrolling: touch;
margin: 0;
display: flex;
flex-direction: column;
}
main {
flex-grow: 1;
flex-shrink: 0;
}
header,
footer {
flex: none;
}
আমার কাছে এটি প্রদর্শনের সর্বোত্তম উপায়টি (পাদচরণ) নীচে লেগে রয়েছে তবে সারাক্ষণ সামগ্রী আবৃত করে না:
#my_footer {
position: static
fixed; bottom: 0
}
jQuery ক্রস ব্রাউজার কাস্টম প্লাগইন - ootফুটারবটম ()
অথবা আমার মতো jQuery ব্যবহার করুন এবং আপনার পাদদেশের উচ্চতা সেট করুন auto
বা তে করুনfix
যা পছন্দ করুন তা যাইহোক কাজ করবে will এই প্লাগইনটি jQuery নির্বাচনকারীদের ব্যবহার করে যাতে এটি কাজ করে, আপনার ফাইলটিতে jQuery লাইব্রেরি অন্তর্ভুক্ত করতে হবে।
আপনি কীভাবে প্লাগইনটি চালাচ্ছেন তা এখানে। আমদানি করুন jQuery, এই কাস্টম jQuery প্লাগইন এর কোড অনুলিপি এবং jQuery আমদানি করার পরে এটি আমদানি! এটি খুব সহজ এবং মৌলিক তবে গুরুত্বপূর্ণ।
আপনি যখন এটি করেন, আপনাকে যা করতে হবে তা এই কোডটি চালানো উচিত:
$.footerBottom({target:"footer"}); //as html5 tag <footer>.
// You can change it to your preferred "div" with for example class "footer"
// by setting target to {target:"div.footer"}
এটি নথির প্রস্তুত ইভেন্টের ভিতরে রাখার দরকার নেই। এটি যেমন চলবে তেমনি চলবে। পৃষ্ঠাটি লোড হওয়ার পরে এবং উইন্ডোটি পুনরায় আকার দেওয়ার সময় এটি আপনার পাদলেখের অবস্থান পুনরায় গণনা করবে।
এখানে প্লাগিনের কোড যা আপনাকে বুঝতে হবে না। কীভাবে এটি বাস্তবায়ন করা যায় তা জানেন। এটি আপনার জন্য কাজ করে। তবে আপনি কীভাবে এটি কাজ করে তা জানতে চাইলে কেবল কোডটি দেখুন। আমি আপনার জন্য মন্তব্য রেখেছি।
//import jQuery library before this script
// Import jQuery library before this script
// Our custom jQuery Plugin
(function($) {
$.footerBottom = function(options) { // Or use "$.fn.footerBottom" or "$.footerBottom" to call it globally directly from $.footerBottom();
var defaults = {
target: "footer",
container: "html",
innercontainer: "body",
css: {
footer: {
position: "absolute",
left: 0,
bottom: 0,
},
html: {
position: "relative",
minHeight: "100%"
}
}
};
options = $.extend(defaults, options);
// JUST SET SOME CSS DEFINED IN THE DEFAULTS SETTINGS ABOVE
$(options.target).css({
"position": options.css.footer.position,
"left": options.css.footer.left,
"bottom": options.css.footer.bottom,
});
$(options.container).css({
"position": options.css.html.position,
"min-height": options.css.html.minHeight,
});
function logic() {
var footerOuterHeight = $(options.target).outerHeight(); // Get outer footer height
$(options.innercontainer).css('padding-bottom', footerOuterHeight + "px"); // Set padding equal to footer height on body element
$(options.target).css('height', footerOuterHeight + "!important"); // Set outerHeight of footer element to ... footer
console.log("jQ custom plugin footerBottom runs"); // Display text in console so ou can check that it works in your browser. Delete it if you like.
};
// DEFINE WHEN TO RUN FUNCTION
$(window).on('load resize', function() { // Run on page loaded and on window resized
logic();
});
// RETURN OBJECT FOR CHAINING IF NEEDED - IF NOT DELETE
// return this.each(function() {
// this.checked = true;
// });
// return this;
};
})(jQuery); // End of plugin
// USE EXAMPLE
$.footerBottom(); // Run our plugin with all default settings for HTML5
/* Set your footer CSS to what ever you like it will work anyway */
footer {
box-sizing: border-box;
height: auto;
width: 100%;
padding: 30px 0;
background-color: black;
color: white;
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<!-- The structure doesn't matter much, you will always have html and body tag, so just make sure to point to your footer as needed if you use html5, as it should just do nothing run plugin with no settings it will work by default with the <footer> html5 tag -->
<body>
<div class="content">
<header>
<nav>
<ul>
<li>link</li>
<li>link</li>
<li>link</li>
<li>link</li>
<li>link</li>
<li>link</li>
</ul>
</nav>
</header>
<section>
<p></p>
<p>Lorem ipsum...</p>
</section>
</div>
<footer>
<p>Copyright 2009 Your name</p>
<p>Copyright 2009 Your name</p>
<p>Copyright 2009 Your name</p>
</footer>
পাদটীকা স্টিকি করার জন্য এই ফ্ল্যাশ সলিউশনগুলি আমার পক্ষে কাজ করেছিল, তবে দুর্ভাগ্যক্রমে ফ্লেক্স লেআউটটি ব্যবহার করতে শরীর পরিবর্তন করা আমাদের পৃষ্ঠাগুলির কিছু লেআউটকে পরিবর্তন করেছে এবং এর চেয়ে ভাল নয়। অবশেষে আমার জন্য যা কাজ করেছিল তা হ'ল:
jQuery(document).ready(function() {
var fht = jQuery('footer').outerHeight(true);
jQuery('main').css('min-height', "calc(92vh - " + fht + "px)");
});
Https://css-tricks.com/couple-takes-sticky-footer/ এ সিটিএফ 0 এর প্রতিক্রিয়া থেকে আমি এটি পেয়েছি
div.fixed {
position: fixed;
bottom: 0;
right: 0;
width: 100%;
border: 3px solid #73AD21;
}
<body style="height:1500px">
<h2>position: fixed;</h2>
<p>An element with position: fixed; is positioned relative to the viewport, which means it always stays in the same place even if the page is scrolled:</p>
<div class="fixed">
This div element has position: fixed;
</div>
</body>
আপনি যদি এটি স্থির অবস্থানটি ব্যবহার না করে এবং মোবাইলে বিরক্তিকরভাবে অনুসরণ করতে চান তবে এটি এখনও পর্যন্ত আমার পক্ষে কাজ করে বলে মনে হচ্ছে।
html {
min-height: 100%;
position: relative;
}
#site-footer {
position: absolute;
bottom: 0;
left: 0;
width: 100%;
padding: 6px 2px;
background: #32383e;
}
এইচটিএমএল কেবল min-height: 100%;
এবং position: relative;
তারপরে পাদলেখকে সেট করুন position: absolute; bottom: 0; left: 0;
। আমি তখন নিশ্চিত করেছিলাম যে ফুটারটি দেহের শেষ উপাদান।
এটি অন্য কারও পক্ষে কাজ করে না এবং আমাকে কেন জানি Let আমি জানি এই ক্লান্তিকর স্টাইল হ্যাকগুলি বিভিন্ন পরিস্থিতিতে আমি অসাধারণ আচরণ করতে পারি যা আমি ভেবে দেখিনি।