یک فوتر چسبان (Sticky Footer) یا فوتر ثابت به شما کمک میکند که بخش پایینی صفحه همیشه در انتهای مرورگر قرار گیرد، حتی اگر محتوای صفحه کم باشد و به پایین صفحه نرسد. این نوع فوتر در طراحیهای مدرن وب بسیار مفید است و میتواند تجربه کاربری بهتری را برای مخاطبان فراهم کند. در این مقاله، به بررسی نحوه ایجاد یک فوتر چسبان در CSS میپردازیم و چندین روش را برای ساخت آن ارائه میدهیم.
یکی از سادهترین و منعطفترین روشها برای ایجاد فوتر چسبان استفاده از 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) استفاده میکند تا فوتر همیشه در پایین صفحه قرار گیرد.
روش دیگر برای ایجاد فوتر چسبان استفاده از 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 ردیفهایی برای هدر، محتوا و فوتر ایجاد میکند که فوتر همیشه در پایین صفحه میماند.
یکی دیگر از روشهای ایجاد فوتر ثابت استفاده از 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 یا حتی جاوا اسکریپت امکانپذیر است. با استفاده از این روشها میتوانید به سادگی یک فوتر ثابت و کاربرپسند در پایین صفحه ایجاد کنید که تجربه کاربری بهتری فراهم کند. بسته به نیاز و ساختار وبسایت خود، میتوانید از یکی از روشهای فوق برای طراحی فوتر چسبان استفاده کنید.
نظری یافت نشد
واحدهای CSS مدرن: آموزش استفاده از vw، vh، vmin و vmax برای طراحی واکنشگرا
11م آبان 1403
مطالعه بیشتر
آموزش ایجاد، دسترسی و اصلاح آرایهها در جاوا اسکریپت: راهنمای کامل
4م مهر 1403
مطالعه بیشتر
آموزش استفاده از ماژولها (Modules) در جاوا اسکریپت: آشنایی با ES6 Modules - راهنمای کامل
5م آبان 1403
مطالعه بیشتر
آموزش Responsive Design با استفاده از Media Queries: طراحی واکنشگرا برای تمامی دستگاهها
10م شهریور 1402
مطالعه بیشتر
کار با border و تنظیمات آن در CSS: مدیریت زوایای گرد با border-radius
9م آبان 1403
مطالعه بیشتر
مقدمهای به template و دیتابایندینگ در Vue.js: نحوه مدیریت دادهها و رندرینگ پویا
28م شهریور 1402
مطالعه بیشتر
آموزش Pseudo-classes در CSS: تغییر استایل عناصر با hover، focus و nth-child
10م شهریور 1402
مطالعه بیشتر
کار با فیلترهای CSS: آموزش استفاده از blur، brightness و contrast برای افکتهای تصویری جذاب
11م آبان 1403
مطالعه بیشتر
آموزش کار با flex-grow، flex-shrink و flex-basis در CSS Flexbox: مدیریت اندازه و فضای عناصر
11م آبان 1403
مطالعه بیشتر
آموزش رویدادهای پیشرفته در جاوا اسکریپت: بابلینگ، کپچرینگ و توقف پیشفرض - راهنمای جامع
2م آبان 1403
مطالعه بیشتر
استفاده از display در CSS: تغییر نحوه نمایش عناصر - راهنمای جامع
9م آبان 1403
مطالعه بیشتر
استفاده از font face در CSS برای اضافه کردن فونتهای سفارشی: راهنمای کامل
16م آبان 1403
مطالعه بیشتر
تمامی حقوق معتلق به ناشر سایت است و کپی از آن پیگرد قانونی دارد