body: جایی که همه‌چیز واقعاً اتفاق می‌افته

تا اینجا هرچی درباره‌ش صحبت کردیم (head، meta، title) همه پشت‌صحنه بودن؛ چیزهایی که کاربر مستقیم نمی‌بینتشون. حالا می‌رسیم به تگ <body>، جایی که کل محتوای واقعی و قابل‌مشاهده‌ی صفحه توش نوشته می‌شه.

body چیه؟

تگ body دومین و آخرین فرزند مستقیم تگ html هست (بعد از head) و هر چیزی که کاربر تو مرورگر می‌بینه، از متن گرفته تا تصویر و دکمه و فرم، باید داخل همین تگ نوشته بشه.

<body>
  <h1>سلام دنیا</h1>
  <p>این یک پاراگراف ساده است.</p>
</body>

یه سند HTML باید دقیقاً یک تگ body داشته باشه، نه بیشتر.

چه چیزهایی داخل body قرار می‌گیرن؟

عملاً هر چیزی که تا الان بهش اشاره کردیم یا تو درس‌های بعدی می‌بینیم، جاش داخل body هست:

  • عنوان‌ها (h1 تا h6)
  • پاراگراف‌ها (p)
  • تصاویر (img)
  • لینک‌ها (a)
  • لیست‌ها، جدول‌ها، فرم‌ها
  • عناصر معنایی مثل header، nav، main، footer

به بیان ساده: اگه یه چیزی قراره کاربر تو صفحه ببینه، جاش تو body هست؛ اگه یه چیزی صرفاً اطلاعات پشت‌صحنه‌ست (مثل تنظیمات کدگذاری یا عنوان تب)، جاش تو head هست.

یه مثال کامل‌تر

<!DOCTYPE html>
<html lang="fa" dir="rtl">
<head>
  <meta charset="UTF-8">
  <title>درباره ما</title>
</head>
<body>
  <h1>درباره‌ی تیم ما</h1>
  <p>ما یک تیم کوچک از توسعه‌دهنده‌های علاقه‌مند به وب هستیم.</p>
  <img src="team.jpg" alt="عکس تیم">
</body>
</html>

اگه این فایل رو تو مرورگر باز کنی، رو تب مرورگر «درباره ما» رو می‌بینی (که از title میاد)، و داخل خود صفحه یه تیتر بزرگ «درباره‌ی تیم ما»، یه پاراگراف توضیحی، و یه تصویر می‌بینی. هیچ‌کدوم از محتوای head (مثل title یا meta) مستقیم تو صفحه دیده نمی‌شن.

ترتیب محتوا داخل body مهمه

برخلاف head که ترتیب تگ‌هاش تا حدی انعطاف‌پذیره، ترتیب محتوا داخل body دقیقاً همون ترتیبیه که کاربر تو صفحه می‌بینه (از بالا به پایین). یعنی اگه یه پاراگراف رو قبل از یه تیتر بنویسی، همون‌طور هم نمایش داده می‌شه؛ برخلاف تصور بعضیا که فکر می‌کنن CSS همیشه ترتیب رو کاملاً عوض می‌کنه.

<body>
  <p>این پاراگراف اول نوشته شده.</p>
  <h1>این تیتر بعد از پاراگراف اومده.</h1>
</body>

تو این مثال، پاراگراف بالای تیتر نمایش داده می‌شه، دقیقاً به همون ترتیبی که تو کد نوشته شده؛ حتی اگه از نظر منطقی معمولاً تیتر رو اول می‌ذاریم.

آیا body می‌تونه ویژگی هم داشته باشه؟

بله، هرچند امروزه کمتر رایجه. تو گذشته، ویژگی‌هایی مثل bgcolor (رنگ پس‌زمینه) یا text (رنگ متن) مستقیم رو تگ body نوشته می‌شدن:

<body bgcolor="white" text="black">

این روش امروز کاملاً منسوخ (Deprecated) شده و نباید ازش استفاده کرد. جای این‌ها، امروز از CSS استفاده می‌کنیم که هم قدرتمندتره، هم استاندارده:

<style>
  body {
    background-color: white;
    color: black;
  }
</style>

چند اشتباه رایج

  • گذاشتن تگ‌های فراداده مثل meta یا title داخل body به‌جای head.
  • استفاده از ویژگی‌های قدیمی و منسوخ مثل bgcolor به‌جای CSS.
  • نوشتن چند تگ body تو یک فایل که ساختار سند رو خراب می‌کنه.
  • بی‌توجهی به ترتیب محتوا داخل body و تعجب از اینکه چرا صفحه به ترتیبی که انتظار داشتن نمایش داده نمی‌شه.

بهترین روش‌ها

  • هیچ‌وقت از ویژگی‌های ظاهری قدیمی (مثل bgcolor) روی body استفاده نکن؛ همیشه استایل‌دهی رو با CSS انجام بده.
  • محتوای body رو به ترتیب منطقی از بالا به پایین بچین، مطابق چیزی که می‌خوای کاربر ببینه.

نکته‌ی سئو

محتوای داخل body همان چیزی است که موتورهای جستجو برای فهمیدن موضوع و ارزش صفحه، به‌طور مستقیم می‌خوانند و تحلیل می‌کنند؛ بنابراین ساختار درست و معنادار محتوای body، تأثیر مستقیمی روی سئوی صفحه دارد.

نکته‌ی دسترسی‌پذیری

ترتیب منطقی محتوای body برای صفحه‌خوان‌ها بسیار مهم است؛ این ابزارها معمولاً محتوا را دقیقاً به همان ترتیبی که در کد نوشته شده می‌خوانند، نه به ترتیبی که ممکن است با CSS به‌صورت بصری تغییر کرده باشد.

جمع‌بندی

تگ body ظرف اصلی تمام محتوای قابل‌مشاهده‌ی صفحه است؛ هر چیزی که کاربر تو مرورگر می‌بینه، از متن و تصویر گرفته تا فرم و جدول، داخل همین تگ نوشته می‌شه. ترتیب نوشتن محتوا داخل body مستقیماً روی ترتیب نمایش صفحه اثر می‌ذاره و استفاده از ویژگی‌های ظاهری قدیمی روی این تگ امروز کاملاً منسوخ حساب می‌شه.