আপনি কীভাবে কোনও ওয়েব পৃষ্ঠার নীচে থাকা পাদলেখ পেতে পারেন?


291

আমার একটি ফুটার সহ একটি সাধারণ 2-কলাম লেআউট আছে যা আমার মার্কআপে ডান এবং বাম উভয় ডিভ সাফ করে। আমার সমস্যাটি হ'ল আমি সমস্ত ব্রাউজারে পৃষ্ঠার নীচে থাকা পাদলেখ পেতে পারি না। যদি বিষয়বস্তু পাদলেখকে নীচে ঠেলে দেয় তবে এটি কাজ করে তবে সবসময় এটি হয় না।


আমি @ জিমিকে যুক্ত করব: পাদলেখ থাকা উপাদানটিতে আপনার নিখুঁত (বা আপেক্ষিক) অবস্থান ঘোষণা করতে হবে। আপনার ক্ষেত্রে এটি শরীরের উপাদান। সম্পাদনা করুন: আমি এটি আপনার পৃষ্ঠায় ফায়ারব্যাগ দিয়ে পরীক্ষা করেছি এবং দেখে মনে হচ্ছে এটি খুব ভাল কাজ করেছে ...
yoavf

এই লিঙ্কটি যেমনটি বলেছে তেমন
সিনা

উত্তর:


199

একটি স্টিকি পাদলেখ পেতে:

  1. একটি আছে <div>সঙ্গে class="wrapper"আপনার সামগ্রীর জন্য।

  2. রাইট করার আগে ক্লোজিং </div>এর wrapperজায়গা <div class="push"></div>

  3. ঠিক জায়গাটি বন্ধ হয়ে যাওয়ার পরে</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 */
}

4
@jlp: আপনাকে ফর্ম ট্যাগটি উচ্চতায় যুক্ত করতে হবে: 100% বিবৃতি, অন্যথায় এটি স্টিকি ফুটারটি ভেঙে ফেলবে।
এটির

আমি লক্ষ্য করেছি যে পাদদেশে প্যাডিং যুক্ত করা এটি স্ক্রুগুলিতে পড়েছে তবে বুঝতে পেরেছি যে {ফুটার, ধাক্কা} উচ্চতা থেকে ফুটারের অতিরিক্ত প্যাডিং বিয়োগ করে এটি ঠিক করা যেতে পারে।
নিকোগা

1
ডেমো সহ বিশদ বিবরণটি এই সাইটে সরবরাহ করা হয়েছে: সিএসএস স্টিকি পাদচরণ
মোহিত্প

আরে আমি আপনার পদক্ষেপগুলি অনুসরণ করেছি এবং এটি বড় পৃষ্ঠাগুলির জন্য বেশ ভাল কাজ করে। তবে ছোট পৃষ্ঠাগুলিতে যেখানে ব্যবহারকারীর পাদলেখ নীচে থেকে কিছুটা নীচে স্ক্রোল করতে সক্ষম নয়। সুতরাং এটি প্রায় খালি পৃষ্ঠাটিকে স্ক্রোলযোগ্য করে তোলে। কেউ কীভাবে এটি ঠিক করতে জানেন? তুমি আমার পরীক্ষা পৃষ্ঠা এখানে দেখতে পারেন sheltered-escarpment-6887.herokuapp.com
Syk

1
@ সাইক আমি খুঁজে পেয়েছি যে ন্যূনতম উচ্চতা হ্রাস করতে সহায়তা করে। 94% একটি ঠিক আছে মান, কিন্তু আপনি এখনও মোবাইলে সমস্যা দেখেছি :( না নিশ্চিত একটি বাস্তব সমাধান এখানে।
ACK_stoverflow

84

সিএসএস ভি ইউনিট ব্যবহার করুন!

সম্ভবত একটি স্টিকি ফুটার সম্পর্কে সর্বাধিক সুস্পষ্ট এবং অ-হ্যাকি উপায় হ'ল নতুন সিএসএস ভিউপোর্ট ইউনিট ব্যবহার করা

উদাহরণস্বরূপ নিম্নলিখিত সাধারণ মার্কআপটি ধরুন:

<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) একসময় ওয়েবকিট একটি ক্যালকের নিয়মের মধ্যে ভিউপোর্ট ইউনিটগুলির সাথে সমস্যা ছিল। এটি অবশ্যই স্থির করা হয়েছে ( দেখুন এখানে) ) যাতে কোনও সমস্যা নেই। তবে আপনি যদি কোনও কারণে ক্যালক ব্যবহার এড়াতে চান তবে আপনি এটি ঘৃণিত মার্জিন ব্যবহার করে এবং বাক্স-আকারের সাথে প্যাডিং পেতে পারেন -

তাই ভালো:


4
এটি এখানে বেশিরভাগ সেরা সমাধান আমি দেখেছি, আমার অদ্ভুত ক্ষেত্রে এমনকি কারা-কী কারণ জানতে পারে তার জন্য ফুটে ফুটে ওঠে। কনটেন্টের কিছু বিষয়বস্তু নিয়ে কাজ করেছে। এবং আমি অনুমান করি যে সাস এবং ভেরিয়েবলগুলির মতো স্ট্যাচ সহ এটি আরও বেশি নমনীয় হতে পারে।
themarketka

1
প্রকৃতপক্ষে, এই একটি কবজ মত কাজ করে। অ-সমর্থনকারী ব্রাউজারগুলির জন্য খুব সহজে ফ্যালব্যাক।
Aramir

3
কীভাবে নিখুঁত পরিমাপের সাথে জগাখিচুড়ি হ্যাক হয় না? সর্বোপরি এটি সম্ভবত কম হ্যাকি
জনাথন

তবে এবং যদি পাদলেখ এবং শিরোলেখের উচ্চতা ম্যাক্সার্ড হয় শতাংশে এবং পিএক্স না? পৃষ্ঠার উচ্চতার 15% পছন্দ?
ফার্নান্দা ব্রাম

3
ভিউপোর্ট ইউনিটগুলি সর্বদা মোবাইল ব্রাউজারগুলিতে প্রত্যাশা অনুযায়ী কাজ করে না যা স্ক্রোল অবস্থানের উপর নির্ভর করে ঠিকানা বারটি লুকায় বা দেখায়
ইভজেনি

57

সাথে স্টিকি ফুটার display: flex

ফিলিপ ওয়ালটনের স্টিকি ফুটার দ্বারা অনুপ্রাণিত সমাধান ।

ব্যাখ্যা

এই সমাধানটি কেবল এর জন্য বৈধ :

  • ক্রোম ≥ 21.0
  • ফায়ারফক্স ≥ 20.0
  • ইন্টারনেট এক্সপ্লোরার ≥ 10
  • সাফারি ≥ 6.1

এটা তোলে উপর ভিত্তি করে তৈরি 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-shrink0 থেকে স্পষ্টভাবে সম্পত্তি .contentএবং footerউপরোক্ত উদাহরণের:

.content { flex-shrink: 0; }
.footer  { flex-shrink: 0; }

13
আমি অনুভব করি এটি সঠিক উত্তর, যেহেতু এটি কেবলমাত্র একমাত্র পন্থা যা ফুটারের উচ্চতা জানা না গেলেও কাজ করে।
ফাস্টানিস

এটি গ্রিডটি ঝরঝরে 2
হাফফ্যাচ

তবে কেন ফিলিপ ওয়ালটনের সমাধান নিজেই নয়, কেন একটি অতিরিক্ত "স্পেসার" উপাদান?
ইয়াকভল

ওয়ালটনের সমাধান .Site-contentউপাদানগুলিতে @ ইয়াকোভেল একই ভূমিকা পালন করে spacer। একে শুধু আলাদাভাবে বলা হয়।
গেরম্যান

@ গেরম্যান ভাল আছেন, এই মার্কআপে .Site-contentএকটি অ্যানালগ .contentআছে .. তবে কিছুই নয়, আমি মামলার জন্য জিজ্ঞাসা করলাম গিসেডো এর সম্পর্কে কিছু নির্দিষ্ট ধারণা আছে, অনুমান করার দরকার নেই
ইয়াকোভএল

30

position: absoluteপাতার নীচে ফুটার স্থাপনের জন্য আপনি নিম্নলিখিতগুলি ব্যবহার করতে পারেন , তবে তারপরে নিশ্চিত করুন যে আপনার 2 কলামগুলিতে যথাযথ পরিমাণ রয়েছে margin-bottomযাতে সেগুলি কখনও ফুটার দ্বারা সংযুক্ত না হয়।

#footer {
    position: absolute;
    bottom: 0px;
    width: 100%;
}
#content, #sidebar { 
    margin-bottom: 5em; 
}

আমি এটি আমার অনুরূপ সেটআপ (দুটি কলাম + পাদদেশ) দিয়ে চেষ্টা করেছি এবং এটি কার্যকর হয় না।
isomorphismes

14
কন্টেন্ট বৃদ্ধি পেলে এটি সামগ্রীতে ওভারল্যাপ হয়।
সত্য প্রকাশ

1
এজন্য সামগ্রীতে মার্জিন-ডাউন রয়েছে। আপনি পাদলেখকে যে উচ্চতা নির্ধারণ করবেন তা আপনাকে সেট করতে হবে।
জিমি

এটি মূল্যবান কিসের জন্য, যদি কোনও শূন্য মান হয় তবে এটি কোনও পরিমাপের ইউনিটে রয়েছে তা বিবেচ্য নয়, কিছুই কিছুই নয়, তাই 0pxআমি দেখেছি সমস্ত স্টাইলশীটের সমস্ত গুলি ন্যায়সঙ্গত হওয়া উচিত 0
জোনাথন

পৃষ্ঠার উচ্চতা যদি ডিসপ্লেটির উচ্চতা বা পাদলেখের সামগ্রীর দৈর্ঘ্যের চেয়ে বেশি হয় তবে কী হবে? এই সমস্যার সমাধানের জন্য আমার উত্তর দেখুন।
রবীন্দ্র পায়েল

15

এখানে 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 )

একটি বিকল্প ফুটারের ঠিক আগে "পুশার" ডিভ যুক্ত করা add তারপরে পুশার ডিভের উচ্চতা নির্ধারণ করুন। এটি বিদ্যমান মার্জিন-শীর্ষের সাথে লেনদেন করা এড়িয়ে চলে
সার্সাপরিলা

নো-জেএস সমাধানের জন্য আমার উত্তরটি দেখুন।
ফেরিট

11

এর জন্য সিএসএস সেট করুন #footer:

position: absolute;
bottom: 0;

এর পরে আপনি একটি যোগ করার জন্য প্রয়োজন হবে paddingবা marginআপনার নীচে #sidebarএবং #contentউচ্চতা মেলে #footerঅথবা যখন তারা ওভারল্যাপ,#footer তাদের আবরণ হবে।

এছাড়াও, আমি যদি সঠিকভাবে মনে রাখি তবে আই 6 এর সাথে সমস্যা আছে bottom: 0 সিএসএস । আইই 6 এর জন্য আপনাকে জেএস সমাধান ব্যবহার করতে হতে পারে (আপনি যদি আই 6 এর বিষয়ে যত্নশীল হন)।


10
উইন্ডোটি খুব ছোট হয়ে গেলে, পাদলেখগুলি এই CSS এর সাথে সামগ্রীটির সামনে প্রদর্শিত হয়।
সেচি

1
আমার উত্তর @Seichi দেখুন
ferit

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>


1
আরেকটি পদ্ধতি .content flex: 1 0 auto;হ'ল এটিকে বিকাশযোগ্য এবং অ-সঙ্কোচযোগ্য করে তোলার জন্য উপহার দেওয়া, তবে margin-top: auto;এটি একটি দুর্দান্ত কৌশল যা স্টাইলিং পাদচরণ জড়িত, এটি "অ-সম্পর্কিত" নয় .contentযা দুর্দান্ত। প্রকৃতপক্ষে, আমি ভাবছি কেন এই পদ্ধতির মধ্যে ফ্লেক্স প্রয়োজন ..
ইয়াকভল

@ ইয়াকোভল হ্যাঁ এখানে মূল ধারণাটি মার্জিন-টপ ট্রিক;) আমি জানি যে আমি বিষয়বস্তুটি এটির মতো তৈরি করতে পারি তবে এটি পূর্ববর্তী উত্তর হিসাবে প্রায় একই হবে যেখানে ধারণাটি বিষয়বস্তু দ্বারা পাদলেখকে চাপ দেওয়া ... এবং এখানে আমি এড়াতে এবং
পাদলেখকে

মার্জিনের জন্য @ ইয়াকোভেল ফ্লেক্সের প্রয়োজন: অটো :) আমরা এটিকে ছাড়াই এটি ব্যবহার করতে পারি না ... মার্জিন হিসাবে: ফ্লেক্স আইটেমের সাথে অটো কিছুটা আলাদা আচরণ করে আইটেমগুলি ব্লক করে। আপনি display:flexএটি সরিয়ে
ফেললে

হ্যাঁ, আমি দেখতে পাচ্ছি যে এটি ছাড়া এটি কাজ করবে না, তবে কেন বুঝতে পারি না (কী "কিছুটা আলাদা")
ইয়াকোভল

1
@ ইয়াকোভেল এটি সহজ, সাধারণ ব্লক উপাদান ব্যবহার করে প্রবাহটি সর্বদা সারি দিক হয় সুতরাং অটো দিয়ে ব্যবহৃত কেবল মার্জিন ডান / বাম কাজ করবে ( margin:0 autoকেন্দ্রের ব্লক উপাদানগুলির জন্য বিখ্যাত হিসাবে ) তবে আমাদের কোনও কলামের দিক নেই তাই কোন প্রান্ত নেই উপরে / নীচে সহ অটো। ফ্লেক্সবক্সে উভয় সারি / কলামের দিক রয়েছে;)। এটি সামান্য পার্থক্য, তবে মার্জিনটি ফ্লেক্সবক্সের মধ্যেও উপাদানটিকে সারিবদ্ধ করার জন্য ব্যবহৃত হয় এমনকি এক সারি দিকের মধ্যে আপনি উল্লম্ব সারিবদ্ধ করার জন্য মার্জিন-শীর্ষ / নীচের স্বয়ংক্রিয় ব্যবহার করতে পারেন .. আপনি এখানে আরও পড়তে পারেন: w3.org/TR/css- ফ্লেক্সবক্স -১ / # অটো-মার্জিন
তেমনী আফিফ

5

এখানে চিত্র বর্ণনা লিখুন

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/


2

আমি নিজে মাঝে মাঝে এর সাথে লড়াই করেছি এবং আমি সর্বদা খুঁজে পেলাম যে একে অপরের মধ্যে এই সমস্ত ডিভের সাথে সমাধানটি একটি অগোছালো সমাধান ছিল। আমি এটির সাথে কিছুটা গোলমাল করেছি, এবং আমি ব্যক্তিগতভাবে জানতে পারি যে এটি কাজ করে এবং এটি অবশ্যই সহজতম উপায়গুলির মধ্যে একটি:

html {
    position: relative;
}

html, body {
    margin: 0;
    padding: 0;
    min-height: 100%;
}

footer {
    position: absolute;
    bottom: 0;
}

আমি এটি সম্পর্কে যা পছন্দ করি তা হ'ল কোনও অতিরিক্ত এইচটিএমএল প্রয়োগ করা দরকার না। আপনি কেবল এই সিএসএস যুক্ত করতে পারেন এবং তারপরে যখনই আপনার HTML লিখতে পারেন


এটি আমার কাজ করেছিল, তবে আমি প্রস্থকে 100% যোগ করেছি।
ভিক্টর.উডাক

2

যেহেতু গ্রিড সমাধান এখনো উপস্থাপন হয় নি, এখানে এটা মাত্র দুই সাথে আছেন, ঘোষণা জন্য পিতা বা মাতা উপাদান , আমরা যদি নিতে 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>

আইটেমগুলি ক্রস অক্ষ সহ প্রান্তিককরণ পাত্রে সমানভাবে বিতরণ করা হয়। সংলগ্ন আইটেমগুলির প্রতিটি জুটির মধ্যে ব্যবধান একই। প্রথম আইটেমটি মূল-প্রান্তের প্রান্তের সাথে ফ্লাশ হয় এবং শেষ আইটেমটি মূল প্রান্তের প্রান্তের সাথে ফ্লাশ হয়।


1

সিএসএস:

  #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>

আপনি যদি পৃষ্ঠার নীচে প্রান্তিকভাবে একটি প্রতিক্রিয়াশীল পাদলেখ খুঁজছেন তবে এটি কৌশলটি করা উচিত, যা সর্বদা ভিউপোর্টের উচ্চতার ৮০% শীর্ষে থাকে।


1

নিম্নলিখিত পদক্ষেপগুলি ব্যবহার করে যে কোনও রেজোলিউশনে স্টিকি ফুটার ডিভ তৈরি করতে পরম অবস্থান এবং জেড-সূচক ব্যবহার করুন:

  • একটি 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>


1

এই প্রশ্নের জন্য আমি যে উত্তরগুলি দেখেছি, সেগুলির অনেকগুলি চতুর, বাস্তবায়ন করা শক্ত এবং অদক্ষ তাই আমি ভেবেছিলাম যে আমি এটিতে একটি শট নেব এবং নিজের সমাধানটি নিয়ে আসব যা কেবলমাত্র সিএসএস এবং এইচটিএমএল এর একটি ক্ষুদ্র বিট 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>

এটি ফুটারের উচ্চতা নির্ধারণ করে এবং তারপরে সিএসএস ক্যালক ব্যবহার করে পৃষ্ঠাটি নূন্যতম উচ্চতাটি নীচে থাকা পাদলেখের সাথে থাকতে পারে, আশা করি এটি কিছু লোককে সহায়তা করবে :)



0

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

নেস্টেড ডিভ মাল্টি-কলাম লেআউটটি একটি কুরুচিপূর্ণ হ্যাক এবং স্টিকারিং পাদলেখের জন্য 100% ন্যূনতম উচ্চতার বডি / ধারক ডিভ একটি কুরুচিপূর্ণ হ্যাক।

সমস্ত ব্রাউজারগুলিতে আমি চেষ্টা করেছি এমন একমাত্র নো স্ক্রিপ্ট সমাধান: থ্যাড (শিরোলেখের জন্য) / টিফুট (পাদলেখের জন্য) / টিডি (কোনও কলামের জন্য সংখ্যক টিডি) এবং 100% উচ্চতা সহ অনেকগুলি সহজ / খাটো টেবিল। তবে এটি সিমেটিক এবং এসইও এর অসুবিধাগুলি অনুধাবন করেছে (টিফুটটি অবশ্যই কারও সামনে উপস্থিত হওয়া উচিত AR


0

একাধিক ব্যক্তি এই সাধারণ সমস্যার উত্তর এখানে রেখেছেন, তবে আমার কী যুক্তি আছে তা বিবেচনা করে আমার একটা যুক্তি আছে, যতক্ষণ না বুঝেছি আমি কী ভুল করছি 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;
}

তবে সম্পত্তিটি পোস্টগুলিতে উল্লিখিত নয়, সম্ভবত এটি সাধারণত ডিফল্ট হওয়ায় অবস্থান: স্থিতিশীল শরীরের ট্যাগে । পজিশন আপেক্ষিক কাজ করবে না!

আমার ওয়ার্ডপ্রেস থিমটি ডিফল্ট বডি ডিসপ্লেকে ওভাররাইড করেছিল এবং এটি আমাকে দীর্ঘমেয়াদে বিভ্রান্ত করেছিল।


0

আমি জানি একটি পুরানো থ্রেড, তবে আপনি যদি কোনও প্রতিক্রিয়াশীল সমাধান খুঁজছেন তবে এই 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/


0

আমি একটি খুব সাধারণ লাইব্রেরী তৈরি করেছি 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;
    }
}

এখন, যদি প্রদর্শনের উচ্চতাটি আপনার সামগ্রীর দৈর্ঘ্যের চেয়ে বেশি হয় তবে আমরা পাদলেখগুলি নীচে স্থির করে দেব এবং তা না হলে এটি দেখার জন্য আপনাকে স্বয়ংক্রিয়ভাবে প্রদর্শিত হবে কারণ এটি দেখার জন্য আপনাকে স্ক্রোল করতে হবে।

এবং এটি জাভাস্ক্রিপ্ট / লাইব্রেরির চেয়ে ভাল সমাধান বলে মনে হচ্ছে।


0

এর আগে এই পৃষ্ঠায় প্রস্তাবিত সমাধানগুলি নিয়ে আমার ভাগ্য ছিল না তবে শেষ পর্যন্ত এই ছোট্ট কৌশলটি কাজ করেছিল। আমি এটিকে অন্য সম্ভাব্য সমাধান হিসাবে অন্তর্ভুক্ত করব।

footer {
  position: fixed;
  right: 0;
  bottom: 0;
  left: 0;
  padding: 1rem;
  background-color: #efefef;
  text-align: center;
}

0

ফ্লেক্সবক্স সমাধান

প্রাকৃতিক শিরোলেখ এবং পাদলেখের উচ্চতার জন্য ফ্লেক্স বিন্যাসটি পছন্দ করা হয়। এই ফ্লেক্স সলিউশনটি আধুনিক ব্রাউজারগুলিতে পরীক্ষা করা হয় এবং আসলে আইই 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;
}

0

আমার কাছে এটি প্রদর্শনের সর্বোত্তম উপায়টি (পাদচরণ) নীচে লেগে রয়েছে তবে সারাক্ষণ সামগ্রী আবৃত করে না:

#my_footer {
    position: static
    fixed; bottom: 0
}

1
এই সিনট্যাক্স সঠিক? অবস্থান কি স্থির বা স্থির বলে মনে করা হচ্ছে?
স্টিলথথিনেঞ্জ

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>


প্লাটফর্মের তুলনায় ভ্যানিলা জাভা-স্ক্রিপ্টটি কম দীর্ঘ।
রবীন্দ্র পায়েল

0

পাদটীকা স্টিকি করার জন্য এই ফ্ল্যাশ সলিউশনগুলি আমার পক্ষে কাজ করেছিল, তবে দুর্ভাগ্যক্রমে ফ্লেক্স লেআউটটি ব্যবহার করতে শরীর পরিবর্তন করা আমাদের পৃষ্ঠাগুলির কিছু লেআউটকে পরিবর্তন করেছে এবং এর চেয়ে ভাল নয়। অবশেষে আমার জন্য যা কাজ করেছিল তা হ'ল:

    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 এর প্রতিক্রিয়া থেকে আমি এটি পেয়েছি


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>


0

আপনি যদি এটি স্থির অবস্থানটি ব্যবহার না করে এবং মোবাইলে বিরক্তিকরভাবে অনুসরণ করতে চান তবে এটি এখনও পর্যন্ত আমার পক্ষে কাজ করে বলে মনে হচ্ছে।

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 আমি জানি এই ক্লান্তিকর স্টাইল হ্যাকগুলি বিভিন্ন পরিস্থিতিতে আমি অসাধারণ আচরণ করতে পারি যা আমি ভেবে দেখিনি।


-1

সামগ্রী এবং সাইডবারের চারপাশে একটি ধারক ডিভ (ওভারফ্লো: অটো সহ) স্থাপন করার চেষ্টা করুন।

যদি এটি কাজ না করে তবে আপনার কোনও স্ক্রিনশট বা উদাহরণ লিঙ্ক রয়েছে যেখানে ফুটারটি সঠিকভাবে প্রদর্শিত হচ্ছে না?

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.