ویژگی تصویر

طراحی صفحه 404 با CSS

  /  CSS   /  طراحی صفحه 404 با CSS
بنر تبلیغاتی الف

صفحه 404 زمانی نمایش داده می‌شود که کاربر آدرس ناموجودی را درخواست کند. طراحی خوب صفحه 404 می‌تواند تجربه کاربری را نجات دهد، نرخ خروج (bounce rate) را کاهش دهد و حتی به راهنمایی کاربر برای ادامه مسیر کمک کند. در این مقاله به نکات UX، دسترسی، سئو و چند نمونه عملی با HTML و CSS می‌پردازیم.

اهداف یک صفحه 404 موثر

  • اطلاع صریح از خطا (مثلاً «صفحه پیدا نشد»)
  • هدایت کاربر به صفحات مفید (خانه، جستجو، دسته‌ها)
  • حفظ هویت بصری سایت
  • اطمینان از دسترسی برای همه کاربران (screen readers، موبایل)

ساختار کلی HTML پیشنهادی

ساختار باید ساده و معنادار باشد: عنوان واضح، توضیح کوتاه، جستجو یا لینک‌های پیشنهادی، و دکمه بازگشت.

<main class="not-found" role="main">
  <section class="nf-hero">
    <h1>404</h1>
    <p class="message">متأسفیم — صفحه مورد نظر پیدا نشد.</p>
    <form role="search" class="nf-search">
      <label for="q">جستجو در سایت:</label>
      <input id="q" name="q" type="search" placeholder="جستجوی مقالات..." />
      <button type="submit">جستجو</button>
    </form>
    <nav class="nf-actions">
      <a href="/">صفحه اصلی</a>
      <a href="/contact">تماس با ما</a>
    </nav>
  </section>
</main>

توضیح: این HTML یک اسکلت استاندارد برای صفحه 404 است. از role=”main” برای دسترسی بهتر استفاده شده، فرم جستجو به کاربر امکان پیدا کردن محتوا را می‌دهد و ناوبری پیشنهادی مسیر بازگشت را آسان می‌کند.

نمونه CSS ساده و واکنش‌گرا

/* Simple responsive 404 CSS */:root{
  --bg:#0f1724;
  --accent:#ff6b6b;
  --text:#e6eef8;
  --muted:#9fb3c8;
}

*{box-sizing:border-box}
html,body{height:100%;margin:0;font-family:system-ui,-apple-system,Segoe UI,Roboto,"Helvetica Neue",Arial}

.not-found{
  min-height:100vh;
  display:flex;
  align-items:center;
  justify-content:center;
  background:linear-gradient(180deg,var(--bg),#071020);
  color:var(--text);
  padding:2rem;
  text-align:center;
}

.nf-hero{max-width:720px}
.nf-hero h1{
  font-size:clamp(48px,12vw,120px);
  margin:0;
  color:var(--accent);
  letter-spacing:-2px;
}

.nf-hero .message{color:var(--muted);margin:0.5rem 0 1.5rem}

.nf-search{display:flex;gap:.5rem;justify-content:center;flex-wrap:wrap}
.nf-search input{
  padding:.6rem .8rem;border-radius:6px;border:1px solid rgba(255,255,255,0.08);
  min-width:200px;background:rgba(255,255,255,0.02);color:var(--text)
}
.nf-search button{
  background:var(--accent);color:#fff;border:none;padding:.6rem .9rem;border-radius:6px;cursor:pointer
}
.nf-actions{margin-top:1rem;display:flex;gap:1rem;justify-content:center}
.nf-actions a{color:var(--text);opacity:.9;text-decoration:none;border-bottom:1px dashed rgba(255,255,255,0.06);padding-bottom:2px}

توضیح: این CSS یک طراحی ساده، تاریک و واکنش‌گرا ارائه می‌دهد. از متغیرهای CSS برای آسانی تغییر رنگ استفاده شده و فونت با clamp مقیاس‌پذیر می‌شود. فرم و لینک‌ها برای موبایل نیز تنظیم شده‌اند.

نمونه پیشرفته: انیمیشن و تصویر متحرک با CSS

/* Accent animation for the number */.nf-hero h1 {
  position:relative;
  display:inline-block;
  transition:transform .25s ease;
}
.nf-hero h1::after{
  content:"";
  position:absolute;inset:0;
  background:radial-gradient(circle at 30% 30%, rgba(255,107,107,0.14), transparent 30%);
  transform:scale(.9);
  z-index:-1;
  filter:blur(10px);
  transition:opacity .3s ease;
  opacity:0;
}
.nf-hero:hover h1{transform:translateY(-6px)}
.nf-hero:hover h1::after{opacity:1;transform:scale(1.05)}

توضیح: این قطعه باعث می‌شود عدد 404 با hover انیمیشن ساده‌ای داشته باشد و جلوه بصری نرم‌تری فراهم شود بدون اضافه کردن اسکریپت. برای عملکرد بهتر در موبایل، آن را به عنوان enhancement در نظر بگیرید (غیرفعال شدن در حالت prefers-reduced-motion).

قابلیت دسترسی و SEO

  • از تگ‌های معنایی (main, nav, form) استفاده کنید تا ربات‌ها و خواننده‌های صفحه بهتر متوجه شوند.
  • برای سئو، صفحه 404 بهتر است کد وضعیت HTTP 404 را از سمت سرور ارسال کند؛ فقط تغییر ظاهر کافی نیست.
  • متن کوتاه، مفید و شامل لینک‌های داخلی (home, sitemap) ارائه دهید تا خزنده‌ها و کاربران متوقف نشوند.
  • برای کاربران با نیازهای ویژه، از aria-label و labels مناسب در فرم استفاده کنید.

نمونه پیکربندی سرور (تذکر)

اطمینان حاصل کنید که سرور شما واقعی کد 404 را بازمی‌گرداند. برای مثال در nginx لازم است error_page و return/try_files را درست تنظیم کنید. این بخش وابسته به سرور است و به ندرت نیاز به تغییر HTML/CSS دارد.

بهترین شیوه‌ها و نکات عملی

  • نگه داشتن لحن دوستانه و دقیق: جمله‌های کوتاه و راه‌حل محور.
  • ارائه جستجو یا پیشنهاد محتوا: کاربر را مجدداً وارد قیف تبدیل کنید.
  • استفاده از تصاویر کم‌حجم یا SVG برای سرعت بارگذاری.
  • پیروی از prefers-reduced-motion برای انیمیشن‌ها.
  • آزمایش A/B: متن و CTA را امتحان کنید تا بهترین نرخ بازگشت را پیدا کنید.
ویژگیتوصیه
کد HTTPارسال 404 از سمت سرور
دسترسیاستفاده از role و label
سرعتاستفاده از CSS و SVG به جای تصاویر بزرگ
UXارائه جستجو و لینک‌های پیشنهادی

نتیجه‌گیری

یک صفحه 404 خوب ترکیبی از طراحی بصری، دسترسی، عملکرد و هدایت کاربر است. با CSS سبک، انیمیشن‌های کم‌حجم و لینک‌های مفید می‌توانید تجربه نامطلوب خطا را به فرصتی برای حفظ کاربر تبدیل کنید. کدهای بالا را به عنوان چارچوب پایه در نظر بگیرید و با توجه به برند و نیازهای سایت خود آن‌ها را بهینه کنید.

آیا این مطلب برای شما مفید بود ؟

خیر
بله
موضوعات شما در انجمن: