یک فوتر چسبان (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 یا حتی جاوا اسکریپت امکانپذیر است. با استفاده از این روشها میتوانید به سادگی یک فوتر ثابت و کاربرپسند در پایین صفحه ایجاد کنید که تجربه کاربری بهتری فراهم کند. بسته به نیاز و ساختار وبسایت خود، میتوانید از یکی از روشهای فوق برای طراحی فوتر چسبان استفاده کنید.
نظری یافت نشد
آموزش ساخت Toggle Switch با CSS: طراحی دکمههای تغییر وضعیت جذاب و واکنشگرا
16م آبان 1403
مطالعه بیشتر
آموزش تگهای زمان و مکان در HTML: استفاده از time و location در صفحات وب
29م مرداد 1402
مطالعه بیشتر
مقدمهای بر CSS و نحوه اضافه کردن آن به HTML: راهنمای ساده و کامل برای مبتدیان
4م شهریور 1402
مطالعه بیشتر
توابع فلش (Arrow Functions) در جاوا اسکریپت: سادهسازی کد با استفاده از ES6
2م شهریور 1403
مطالعه بیشتر
آموزش ایجاد یک پروژه ساده React: شروع کار و ساختاردهی کامپوننتها
28م شهریور 1402
مطالعه بیشتر
استفاده از overflow در CSS برای مدیریت محتوای اضافی: راهنمای کامل و کاربردی
11م آبان 1403
مطالعه بیشتر
آموزش ایجاد فرم با استفاده از HTML: طراحی فرمهای ساده و کاربردی
21م مرداد 1402
مطالعه بیشتر
آموزش ساخت یک Todo List با استفاده از DOM و جاوا اسکریپت: راهنمای گام به گام
3م آبان 1403
مطالعه بیشتر
کنترل زمانبندی و اندازهگیری دقیق انیمیشنها در CSS: آموزش جامع و اصول استاندارد
18م شهریور 1402
مطالعه بیشتر
آموزش کامل توابع سازنده (Constructors) و پروتوتایپها (Prototypes) در جاوا اسکریپت: راهنمای جامع
28م مهر 1403
مطالعه بیشتر
آموزش کامل ویژگی background در CSS: تنظیمات پسزمینه برای طراحی وب راهنمای جامع
5م شهریور 1402
مطالعه بیشتر
مدیریت خطاها در Async/Await و Promises در جاوا اسکریپت: راهنمای کامل با مثالهای عملی
30م مهر 1403
مطالعه بیشتر
تمامی حقوق معتلق به ناشر سایت است و کپی از آن پیگرد قانونی دارد