آموزش رایگان CSS

چگونه یک فوتر چسبان در CSS بسازیم: آموزش ساخت فوتر ثابت و همیشگی

2م شهریور 1403 محراب حسن زاده
چگونه یک فوتر چسبان در CSS بسازیم: آموزش ساخت فوتر ثابت و همیشگی

یک فوتر چسبان (Sticky Footer) یا فوتر ثابت به شما کمک می‌کند که بخش پایینی صفحه همیشه در انتهای مرورگر قرار گیرد، حتی اگر محتوای صفحه کم باشد و به پایین صفحه نرسد. این نوع فوتر در طراحی‌های مدرن وب بسیار مفید است و می‌تواند تجربه کاربری بهتری را برای مخاطبان فراهم کند. در این مقاله، به بررسی نحوه ایجاد یک فوتر چسبان در CSS می‌پردازیم و چندین روش را برای ساخت آن ارائه می‌دهیم.

 

استفاده از Flexbox برای ساخت فوتر چسبان

یکی از ساده‌ترین و منعطف‌ترین روش‌ها برای ایجاد فوتر چسبان استفاده از Flexbox است. با این روش، می‌توانید به سادگی فوتر را به پایین صفحه چسبانده و باقی محتوای صفحه را تنظیم کنید.

مراحل ایجاد فوتر چسبان با Flexbox

  • عنصر ریشه (< body > یا یک کانتینر کلی) را به صورت flex تنظیم کنید.

  • ارتفاع عنصر اصلی را به صورت 100% تنظیم کنید تا فضای کل صفحه را بگیرد.

  • محتوای اصلی را طوری تنظیم کنید که فوتر همیشه در پایین صفحه باقی بماند.

مثال



< ! DOCTYPE html >
< html lang="fa" >
< head >
  < meta charset="UTF-8" >
  < meta name="viewport" content="width=device-width, initial-scale=1.0" >
  < title > فوتر چسبان با Flexbox < / title >
  < style >
    * {
        margin: 0;
        padding: 0;
        box-sizing: border-box;
    }

    /* تنظیم کانتینر اصلی به عنوان Flexbox */
    body {
        display: flex;
        flex-direction: column;
        min-height: 100vh;
        font-family: Arial, sans-serif;
    }

    /* تنظیم محتوای اصلی با فضای خودکار */
    .content {
        flex: 1;
        padding: 20px;
        background-color: #f9f9f9;
    }

    /* استایل‌دهی به فوتر */
    footer {
        background-color: #333;
        color: white;
        text-align: center;
        padding: 10px;
    }
  < / style >
< / head >
< body >
  < div class="content" >
    < h1 > محتوای اصلی < / h1 >
    < p > اینجا محتوای اصلی صفحه قرار دارد. < / p >
  < / div >
  < footer >
    < p > این یک فوتر چسبان است. < / p >
  < / footer >
< / body >
< / html >

 

در اینجا:

  • body به عنوان یک Flexbox با ارتفاع 100% تنظیم شده است.

  • content از فضای خودکار (flex: 1) استفاده می‌کند تا فوتر همیشه در پایین صفحه قرار گیرد.

 

استفاده از Grid برای ساخت فوتر چسبان

روش دیگر برای ایجاد فوتر چسبان استفاده از CSS Grid است. با این روش، می‌توانید یک صفحه شبکه‌ای ایجاد کنید که فوتر همیشه در انتهای آن ثابت باشد.

مراحل ایجاد فوتر چسبان با Grid

  • کانتینر اصلی را به صورت grid تنظیم کنید.

  • سه ردیف برای هدر، محتوا و فوتر تعریف کنید.

  • ارتفاع محتوای اصلی را طوری تنظیم کنید که فوتر به انتهای صفحه بچسبد.

مثال



< ! DOCTYPE html >
< html lang="fa" >
< head >
  < meta charset="UTF-8" >
  < meta name="viewport" content="width=device-width, initial-scale=1.0" >
  < title > فوتر چسبان با Grid < / title >
  < style >
    * {
        margin: 0;
        padding: 0;
        box-sizing: border-box;
    }

    /* تنظیم کانتینر اصلی به عنوان Grid */
    body {
        display: grid;
        grid-template-rows: auto 1fr auto;
        min-height: 100vh;
        font-family: Arial, sans-serif;
    }

    /* استایل‌دهی به محتوای اصلی */
    .content {
        padding: 20px;
        background-color: #f9f9f9;
    }

    /* استایل‌دهی به فوتر */
    footer {
        background-color: #333;
        color: white;
        text-align: center;
        padding: 10px;
    }
  < / style >
< / head >
< body >
  < div class="content" >
    < h1 > محتوای اصلی < / h1 >
    < p > اینجا محتوای اصلی صفحه قرار دارد. < / p >
  < / div >
  < footer >
    < p > این یک فوتر چسبان است. < / p >
  < / footer >
< / body >
< / html >

 

در اینجا:

  • کانتینر body به عنوان grid با سه ردیف تنظیم شده است.

  • grid-template-rows ردیف‌هایی برای هدر، محتوا و فوتر ایجاد می‌کند که فوتر همیشه در پایین صفحه می‌ماند.

 

ایجاد فوتر چسبان با استفاده از موقعیت Fixed

یکی دیگر از روش‌های ایجاد فوتر ثابت استفاده از position: fixed است که فوتر را در موقعیت ثابتی از صفحه قرار می‌دهد. این روش مناسب صفحاتی است که فوتر باید همیشه حتی در صورت اسکرول صفحه، در پایین مرورگر بماند.

مثال



< ! DOCTYPE html >
< html lang="fa" >
< head >
  < meta charset="UTF-8" >
  < meta name="viewport" content="width=device-width, initial-scale=1.0" >
  < title > فوتر چسبان با موقعیت Fixed < / title >
  < style >
    * {
        margin: 0;
        padding: 0;
        box-sizing: border-box;
    }

    /* تنظیم محتوای اصلی */
    .content {
        padding: 20px;
        background-color: #f9f9f9;
        margin-bottom: 50px; /* فضای پایین برای فوتر */
    }

    /* استایل‌دهی به فوتر */
    footer {
        position: fixed;
        bottom: 0;
        left: 0;
        width: 100%;
        background-color: #333;
        color: white;
        text-align: center;
        padding: 10px;
    }
  < / style >
< / head >
< body >
  < div class="content" >
    < h1 > محتوای اصلی < / h1 >
    < p > اینجا محتوای اصلی صفحه قرار دارد. < / p >
  < / div >
  < footer >
    < p > این یک فوتر ثابت در پایین صفحه است. < / p >
  < / footer >
< / body >
< / html >

 

در اینجا:

  • position: fixed باعث می‌شود فوتر همیشه در پایین مرورگر و قابل مشاهده بماند.

  • اگر محتوای صفحه زیاد باشد، ممکن است margin-bottom در محتوای اصلی نیاز باشد تا با فوتر همپوشانی نداشته باشد.

 

ساخت فوتر چسبان با جاوا اسکریپت (راه‌حل جایگزین)

در صورتی که تمایلی به استفاده از CSS Grid یا Flexbox ندارید، می‌توانید از جاوا اسکریپت برای بررسی ارتفاع محتوای صفحه و تنظیم موقعیت فوتر استفاده کنید.

مثال با جاوا اسکریپت



< ! DOCTYPE html >
< html lang="fa" >
< head >
  < meta charset="UTF-8" >
  < meta name="viewport" content="width=device-width, initial-scale=1.0" >
  < title > فوتر چسبان با جاوا اسکریپت < / title >
  < style >
    * {
        margin: 0;
        padding: 0;
        box-sizing: border-box;
    }

    /* تنظیم محتوای اصلی */
    .content {
        padding: 20px;
        background-color: #f9f9f9;
    }

    /* استایل‌دهی به فوتر */
    footer {
        background-color: #333;
        color: white;
        text-align: center;
        padding: 10px;
    }
  < / style >
< / head >
< body >
  < div class="content" >
    < h1 > محتوای اصلی < / h1 >
    < p > اینجا محتوای اصلی صفحه قرار دارد. < / p >
  < / div >
  < footer >
    < p > این یک فوتر چسبان با جاوا اسکریپت است. < / p >
  < / footer >

  < script >
    function stickFooter() {
        const footer = document.querySelector("footer");
        const contentHeight = document.body.offsetHeight;
        const windowHeight = window.innerHeight;

        if (contentHeight < windowHeight) {
            footer.style.position = "fixed";
            footer.style.bottom = "0";
            footer.style.width = "100%";
        } else {
            footer.style.position = "relative";
        }
    }

    window.onload = stickFooter;
    window.onresize = stickFooter;
  < / script >
< / body >
< / html >

 

در اینجا:

  • تابع stickFooter بررسی می‌کند که آیا ارتفاع محتوای صفحه کمتر از ارتفاع مرورگر است یا خیر و در صورت لزوم position: fixed به فوتر اعمال می‌کند.

 

نتیجه‌گیری

ساخت فوتر چسبان با CSS به راحتی و با استفاده از Flexbox، CSS Grid یا حتی جاوا اسکریپت امکان‌پذیر است. با استفاده از این روش‌ها می‌توانید به سادگی یک فوتر ثابت و کاربرپسند در پایین صفحه ایجاد کنید که تجربه کاربری بهتری فراهم کند. بسته به نیاز و ساختار وب‌سایت خود، می‌توانید از یکی از روش‌های فوق برای طراحی فوتر چسبان استفاده کنید.

پرسش و پاسخ

نظری یافت نشد

مطالب مشابه

مدیریت خطاها و استفاده از try...catch در جاوا اسکریپت: راهنمای کامل و مثال‌ها
28م مهر 1403

مدیریت خطاها و استفاده از try...catch در جاوا اسکریپت: راهنمای کامل و مثال‌ها

مطالعه بیشتر
آموزش ایجاد یک پروژه ساده React: شروع کار و ساختاردهی کامپوننت‌ها
28م شهریور 1402

آموزش ایجاد یک پروژه ساده React: شروع کار و ساختاردهی کامپوننت‌ها

مطالعه بیشتر
آموزش تگ‌های پیوندی و اتصالی در HTML: ایجاد لینک‌های داخلی و خارجی
29م مرداد 1402

آموزش تگ‌های پیوندی و اتصالی در HTML: ایجاد لینک‌های داخلی و خارجی

مطالعه بیشتر
مفاهیم Promise و چگونگی استفاده از آن در جاوا اسکریپت: راهنمای کامل همراه با مثال‌ها
30م مهر 1403

مفاهیم Promise و چگونگی استفاده از آن در جاوا اسکریپت: راهنمای کامل همراه با مثال‌ها

مطالعه بیشتر
ایجاد Layout‌های واکنش‌گرا با flex-direction و justify-content در CSS Flexbox: راهنمای جامع
11م آبان 1403

ایجاد Layout‌های واکنش‌گرا با flex-direction و justify-content در CSS Flexbox: راهنمای جامع

مطالعه بیشتر
تفاوت Callbacks و Promises در جاوا اسکریپت: مقایسه جامع با مثال‌ها
30م مهر 1403

تفاوت Callbacks و Promises در جاوا اسکریپت: مقایسه جامع با مثال‌ها

مطالعه بیشتر
Lifecycle Hooks در Vue.js | مدیریت چرخه حیات کامپوننت‌ها با مثال کاربردی
29م آذر 1404

Lifecycle Hooks در Vue.js | مدیریت چرخه حیات کامپوننت‌ها با مثال کاربردی

مطالعه بیشتر
معرفی جاوا اسکریپت و نحوه استفاده از آن برای توسعه وب تعاملی: راهنمای جامع
27م شهریور 1402

معرفی جاوا اسکریپت و نحوه استفاده از آن برای توسعه وب تعاملی: راهنمای جامع

مطالعه بیشتر
استفاده از visibility و opacity در CSS برای مخفی‌سازی عناصر: راهنمای کامل و کاربردی
11م آبان 1403

استفاده از visibility و opacity در CSS برای مخفی‌سازی عناصر: راهنمای کامل و کاربردی

مطالعه بیشتر
پیمایش اشیاء و آرایه‌ها در جاوا اسکریپت: راهنمای کامل برای Object.keys، Object.values، for...in و for...of
4م مهر 1403

پیمایش اشیاء و آرایه‌ها در جاوا اسکریپت: راهنمای کامل برای Object.keys، Object.values، for...in و for...of

مطالعه بیشتر
مدیریت فرم‌ها و ورودی‌ها در Vue.js | آموزش Form Handling با مثال کاربردی
22م آذر 1404

مدیریت فرم‌ها و ورودی‌ها در Vue.js | آموزش Form Handling با مثال کاربردی

مطالعه بیشتر
JSX و رندرینگ مؤثر در React.js: بهینه‌سازی کامپوننت‌ها و بهبود عملکرد
28م شهریور 1402

JSX و رندرینگ مؤثر در React.js: بهینه‌سازی کامپوننت‌ها و بهبود عملکرد

مطالعه بیشتر

تمامی حقوق معتلق به ناشر سایت است و کپی از آن پیگرد قانونی دارد