بستن

آموزش HTML از صفر تا سطح مرجع در ۶۵ جلسه

HTML زبان نشانه‌گذاری استانداردی است که ساختار و معنای محتوای یک صفحهٔ وب را برای مرورگر، صفحه‌خوان و موتور جست‌وجو مشخص می‌کند. این دسته، دورهٔ کامل HTML است: ۶۵ جلسهٔ مرتب‌شده از اولین سند خالی تا ARIA و تگ‌های <head>.

هر جلسه یک صفحهٔ مستقل است و می‌توانی مستقیم سراغ همان تگی بروی که الان لازم داری. ولی اگر تازه شروع کرده‌ای، ترتیب پیشنهادی همان ترتیب فهرست است. جلسهٔ ۳ اولین جایی است که یک صفحهٔ واقعی می‌سازی.

HTML چیست و دقیقاً چه کاری می‌کند؟

HTML مخفف HyperText Markup Language است و کارش این است که به هر تکه از محتوا یک نقش بدهد: این یکی عنوان است، آن یکی پاراگراف، این یکی دکمه. مرورگر از روی همین نقش‌ها ساختار صفحه را می‌سازد و صفحه‌خوان از روی همان‌ها برای کاربر نابینا صفحه را روایت می‌کند.

پس HTML ظاهر را نمی‌سازد، معنا را می‌سازد. ظاهر کار CSS است.

۶۵ جلسه به چه ترتیبی چیده شده؟

جلسه‌ها در ده بخش دسته‌بندی شده‌اند و از ساده به سخت پیش می‌روند. سه بخش اول پایه است و بدون آن بقیه معنا ندارد. از بخش ششم به بعد وارد تگ‌های معنایی می‌شوی، یعنی همان چیزی که سئوی سایتت را از یک قالب معمولی جدا می‌کند.

هر تگی که جلسهٔ جدا ندارد، داخل جلسهٔ تگ والدش توضیح داده شده. مثلاً label و select در جلسهٔ فرم‌ها هستند و thead و caption در جلسهٔ جدول‌ها.

بخش ۱: شروع کار (جلسهٔ ۱ تا ۳)

  1. HTML چیست و چه نقشی در یک صفحهٔ وب دارد
  2. ساختار سند HTML و بخش‌های html، head و body
  3. ساخت اولین صفحه و اعتبارسنجی با Validator

بخش ۲: متن، لینک و لیست (جلسهٔ ۴ تا ۸)

  1. تگ‌های عنوان h1 تا h6 و ترتیب درست آن‌ها
  2. تگ p و مدیریت پاراگراف
  3. ویژگی id و قوانین نام‌گذاری
  4. تگ a، انواع لینک و ویژگی‌های rel و target
  5. لیست‌ها با ul، ol و dl

<!– در دست تهیه: بعد از انتشار، متن li را با جایگزین کن –>

بخش ۳: تصویر، صدا و ویدیو (جلسهٔ ۹ تا ۱۲)

  1. تگ img، ویژگی alt و تعیین ابعاد تصویر
  2. تگ picture و تصویر واکنش‌گرا
  3. تگ audio و پخش صدا در مرورگر
  4. تگ video و کنترل‌های پخش

بخش ۴: فرم و جدول (جلسهٔ ۱۳ تا ۱۴)

  1. فرم‌ها و انواع input
  2. جدول‌ها با table، colspan و rowspan

بخش ۵: قالب‌بندی و معنای متن (جلسهٔ ۱۵ تا ۲۹)

  1. تگ br و شکستن خط
  2. تگ hr و جداکنندهٔ معنایی
  3. تگ‌های قالب‌بندی متن مثل strong و em
  4. تگ abbr و تعریف مخفف‌ها
  5. تگ bdo و تغییر اجباری جهت متن
  6. تگ bdi و جداسازی متن دوجهته
  7. تگ‌های نقل‌قول blockquote و q
  8. تگ cite و ارجاع به منبع
  9. تگ kbd و نمایش کلیدهای صفحه‌کلید
  10. تگ dfn و علامت‌گذاری اصطلاح تعریف‌شده
  11. تگ samp و نمایش خروجی برنامه
  12. تگ pre و حفظ فاصله‌ها و خطوط
  13. تگ code و نمایش قطعه‌کد
  14. تگ var و نمایش متغیر
  15. تگ wbr و محل مجاز شکستن کلمه

بخش ۶: ساختار و تگ‌های معنایی (جلسهٔ ۳۰ تا ۴۰)

  1. تگ div و گروه‌بندی بدون معنا
  2. تگ span و هدف‌گیری بخشی از متن
  3. تگ header و سربرگ صفحه یا بخش
  4. تگ nav و منوی ناوبری
  5. تگ footer و پاورقی
  6. تگ section و تقسیم محتوا
  7. تگ article و محتوای مستقل
  8. تگ main و محتوای اصلی صفحه
  9. تگ aside و محتوای حاشیه‌ای
  10. تگ time و تاریخ ماشین‌خوان
  11. تگ data و مقدار ماشین‌خوان
  • تگ search و علامت‌گذاری ناحیهٔ جست‌وجوی سایت (در دست تهیه)

بخش ۷: تگ‌های تعاملی (جلسهٔ ۴۱ تا ۴۴)

  1. تگ details و summary برای آکاردئون بدون جاوااسکریپت
  2. تگ dialog و ساخت مودال بومی مرورگر
  3. تگ meter و نمایش مقدار در یک بازه
  4. تگ progress و نوار پیشرفت

بخش ۸: گرافیک و محتوای جاسازی‌شده (جلسهٔ ۴۵ تا ۵۳)

  1. SVG درون HTML و رسم شکل‌های برداری
  2. تگ canvas و رسم با جاوااسکریپت
  3. تگ map و نقشهٔ تصویری کلیک‌پذیر
  4. تگ embed و جاسازی محتوای خارجی
  5. تگ iframe، ویژگی sandbox و نکات امنیتی
  6. تگ object و جاسازی منابع
  7. تگ figure و figcaption برای تصویر با شرح
  8. تگ address و اطلاعات تماس
  9. تگ ruby و نمایش تلفظ روی متن
  • تگ math و نوشتن فرمول ریاضی با MathML (در دست تهیه)

بخش ۹: ویژگی‌ها و دسترس‌پذیری (جلسهٔ ۵۴ تا ۵۹)

  1. تگ template و محتوای غیرفعال قابل تکرار
  2. موجودیت‌های HTML و نمایش کاراکترهای خاص
  3. ویژگی‌های سراسری که روی هر تگی کار می‌کنند
  4. ویژگی‌های ARIA و وضعیت اجزای صفحه
  5. نقش‌های ARIA و کاربرد درست role
  6. کامنت در HTML و کاربردهای واقعی آن
  • تگ slot و جای‌گذاری محتوا در وب‌کامپوننت (در دست تهیه)

بخش ۱۰: تگ‌های بخش head (جلسهٔ ۶۰ تا ۶۵)

  1. تگ title و عنوان صفحه در نتایج جست‌وجو
  2. تگ base و آدرس پایهٔ لینک‌ها
  3. تگ link، اتصال CSS و فاوآیکون
  4. تگ meta، توضیحات متا و viewport
  5. تگ style و استایل داخلی صفحه
  6. تگ script و ویژگی‌های defer و async

جدا از این ۶۵ جلسه، یک صفحهٔ مرجع هم داریم که می‌توانی موقع کدنویسی بازش بگذاری: مرجع کامل تگ‌های HTML به همراه کاربرد هر کدام.

از کجا شروع کنم و مسیر یادگیری چیست؟

از جلسهٔ ۱ شروع کن و تا جلسهٔ ۱۴ را به ترتیب برو. این چهارده جلسه ستون فقرات کار است. از آنجا به بعد می‌توانی بر اساس نیاز جلو بروی، چون بیشتر جلسه‌ها مستقل نوشته شده‌اند. جدول زیر نشان می‌دهد بعد از هر مرحله چه چیزی واقعاً می‌توانی بسازی.

مسیر یادگیری HTML در چهار مرحله
مرحلهجلسه‌هابعدش چه کاری از دستت برمی‌آید
پایه۱ تا ۸یک صفحهٔ متنی درست با عنوان، پاراگراف، لینک و لیست می‌سازی که Validator رویش خطا نگیرد.
محتوای غنی۹ تا ۱۴تصویر واکنش‌گرا، ویدیو، فرم تماس و جدول قیمت را بدون افزونه پیاده می‌کنی.
ساختار معنایی۱۵ تا ۴۴قالب یک سایت کامل را با تگ‌های معنایی می‌چینی؛ همان چیزی که گوگل و صفحه‌خوان می‌فهمند.
حرفه‌ای۴۵ تا ۶۵SVG، iframe امن، ARIA و تنظیمات <head> برای سئو و سرعت را کنترل می‌کنی.

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

HTML زبان برنامه‌نویسی است؟

نه. HTML شرط، حلقه، تابع و متغیر ندارد، پس زبان برنامه‌نویسی نیست؛ زبان نشانه‌گذاری است. ولی این «نبودن» را با «ساده بودن» اشتباه نگیر. مشخصات رسمی HTML یکی از طولانی‌ترین استانداردهای وب است و بخش زیادی از تجربهٔ کاربری و سئو مستقیم به همین لایه وصل می‌شود.

یادگیری HTML چقدر طول می‌کشد؟

مبانی را در چند روز می‌گیری. تسلط چیز دیگری است. خیلی جاها می‌گویند HTML را در یک روز یاد می‌گیری، ولی این دقیق نیست: چیزی که در یک روز یاد می‌گیری نوشتن چند تگ است، نه انتخاب درست بین <section> و <article>. با روزی یک جلسه، این ۶۵ جلسه حدود دو ماه طول می‌کشد.

تفاوت HTML و HTML5 چیست؟

HTML5 نسخهٔ پنجم و آخرین شمارهٔ رسمی HTML بود، ولی امروز استاندارد به شکل «Living Standard» توسط WHATWG نگه‌داری می‌شود و شماره‌گذاری عملاً کنار رفته است. یعنی وقتی می‌گویی HTML، منظورت همان چیزی است که قبلاً HTML5 صدایش می‌کردند.

تقسیم کار بین سه فناوری اصلی وب
فناوریمسئول چیستاگر نباشد چه می‌شودجای یادگیری
HTMLساختار و معنای محتواصفحه اصلاً وجود نداردهمین دسته
CSSظاهر، چیدمان و واکنش‌گراییصفحه باز می‌شود ولی بی‌ریخت و تک‌ستونهدورهٔ CSS
JavaScriptرفتار و تعاملصفحه دیده می‌شود ولی واکنشی نداردبعد از CSS

پرتکرارترین اشتباه‌های تازه‌کارها

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

هفت اشتباه رایج و کار درست به‌جای هرکدام
اشتباهچرا دردسر می‌شودکار درست
گذاشتن چند <h1> یا پریدن از h1 به h4ساختار سرفصل‌ها برای صفحه‌خوان و گوگل به‌هم می‌ریزد و کاربر نابینا نقشهٔ صفحه را گم می‌کند.یک h1، بعد h2 و h3 به ترتیب، بدون پرش.
<div onclick> به‌جای <button>با کلید Tab انتخاب نمی‌شود، با Enter کار نمی‌کند و صفحه‌خوان آن را دکمه نمی‌شناسد.هر چیزی که کلیک می‌شود، button یا a باشد.
alt="تصویر" یا حذف کامل altهم برای کاربر صفحه‌خوان بی‌فایده است، هم فرصت سئوی تصویر را می‌سوزاند.alt همان چیزی را بگوید که در تصویر دیده می‌شود، نه عنوان مقاله را.
نگذاشتن lang="fa" و dir="rtl"صفحه‌خوان متن فارسی را با لهجهٔ انگلیسی می‌خواند و علائم نگارشی جابه‌جا می‌شوند.هر دو را روی تگ <html> بگذار.
&nbsp; پشت سر هم برای فاصله‌دادنفاصله‌گذاری کار CSS است؛ این روش در موبایل و در چاپ می‌شکند.از margin و padding استفاده کن.
<input> بدون <label>کاربر نمی‌فهمد فیلد برای چیست و کلیک روی برچسب فوکوس را نمی‌برد داخل فیلد.هر input یک label با for متصل داشته باشد.
target="_blank" بدون rel="noopener"صفحهٔ مقصد می‌تواند به پنجرهٔ شما دسترسی پیدا کند و یک ریسک امنیتی قدیمی است.در لینک خارجی همیشه rel="noopener" اضافه کن.

دسترس‌پذیری در این دوره کجاست؟

دسترس‌پذیری در این دوره یک فصل جداگانه در انتها نیست که کسی نخواند. دو جلسهٔ اختصاصی برای ARIA داریم (ویژگی‌های ARIA و نقش‌های ARIA)، ولی مهم‌تر از آن، در جلسه‌های تگ‌های معنایی هم مرتب به آن برمی‌گردیم.

قانون اولی که در جلسهٔ ARIA می‌بینی این است: بهترین ARIA، ARIA ننوشتن است. اگر تگ استانداردی وجود دارد که همان کار را می‌کند، از آن استفاده کن. <nav> بهتر از <div role="navigation"> است، چون خودش نقش را دارد و هیچ‌وقت با HTML ناهماهنگ نمی‌شود.

سه چیزی که از همان جلسهٔ اول باید رعایت کنی: ترتیب درست سرفصل‌ها، alt معنادار برای تصویر، و اینکه هر عنصر تعاملی با صفحه‌کلید هم قابل استفاده باشد. مرجع کامل معیارها را می‌توانی در بخش دسترس‌پذیری MDN ببینی.

پشتیبانی مرورگرها چقدر است؟

اکثر قریب به‌ اتفاق تگ‌هایی که در این ۶۵ جلسه می‌بینی سال‌هاست در همهٔ مرورگرها کار می‌کنند و نیازی به احتیاط ندارند. فقط چند مورد نسبتاً جدیدترند و بهتر است وضعیتشان را بدانی.

وضعیت پشتیبانی چند تگ نسبتاً جدید
ویژگیوضعیت امروزنکته
<dialog>در همهٔ مرورگرهای اصلیسافاری از نسخهٔ ۱۵٫۴ و فایرفاکس از ۹۸ اضافه شد، یعنی حدود سال ۱۴۰۱.
<details>پشتیبانی کاملویژگی name برای آکاردئون تک‌بازشو تازه‌تر است؛ قبل از استفاده چک کن.
<picture>پشتیبانی کاملمرورگر قدیمی به‌صورت خودکار به <img> داخلش برمی‌گردد.
<bdi>پشتیبانی کاملبرای سایت فارسی که اسم یا عدد لاتین نشان می‌دهد واقعاً به‌درد می‌خورد.
<ruby>پشتیبانی پایه در همهبعضی زیرتگ‌های کم‌کاربردش در همهٔ موتورها یکسان رفتار نمی‌کنند.

برای هر تگی که مطمئن نیستی، دو منبع دست‌اول را باز کن: مرجع عناصر HTML در MDN و استاندارد زندهٔ WHATWG.

بعد از HTML سراغ چه بروم؟

CSS. بلافاصله. HTML بدون CSS مثل خانه‌ای است که فقط دیوارهایش بالا رفته. توصیه‌ام این است که حتی صبر نکنی تا هر ۶۵ جلسه تمام شود؛ بعد از جلسهٔ ۱۴ می‌توانی موازی شروع کنی و همان چیزی را که در HTML یاد گرفته‌ای استایل بدهی.

سؤالات متداول

برای شروع HTML به چه چیزی نیاز دارم؟

یک ویرایشگر متن و یک مرورگر. همین. حتی Notepad هم کار می‌کند، هرچند VS Code با تکمیل خودکار و رنگ‌بندی کد کارت را خیلی راحت‌تر می‌کند. نیازی به خرید هاست یا نصب سرور محلی نداری؛ فایل را مستقیم در مرورگر باز می‌کنی.

باید همهٔ ۶۵ جلسه را به ترتیب بخوانم؟

جلسهٔ ۱ تا ۱۴ را بله. بعد از آن هر جلسه مستقل نوشته شده و می‌توانی بر اساس نیازت جلو بروی. مثلاً اگر همین امروز باید یک فرم تماس بسازی، مستقیم برو سراغ جلسهٔ فرم‌ها.

HTML بدون CSS به چه دردی می‌خورد؟

به درد ساختار و معنا. صفحهٔ بدون CSS باز می‌شود، خوانده می‌شود و ایندکس می‌شود، فقط زشت است. برعکسش صادق نیست: CSS بدون HTML هیچ چیزی برای استایل‌دادن ندارد.

آیا HTML برای سئو مهم است؟

خیلی. عنوان صفحه، ساختار سرفصل‌ها، متن جایگزین تصویر، لینک‌های داخلی و دادهٔ ساختاریافته همه در لایهٔ HTML نوشته می‌شوند. یک صفحه با تگ‌های معنایی درست، بدون هیچ کار اضافه‌ای، برای موتور جست‌وجو قابل فهم‌تر است.

تفاوت تگ و ویژگی چیست؟

تگ نوع عنصر را مشخص می‌کند و ویژگی جزئیات آن را. در <a href="/contact/"> بخش a تگ است و href ویژگی. یک تگ می‌تواند چند ویژگی داشته باشد و بعضی ویژگی‌ها هم روی همهٔ تگ‌ها کار می‌کنند که در جلسهٔ ویژگی‌های سراسری بررسی می‌شوند.

چطور بفهمم کدی که نوشته‌ام درست است؟

با اعتبارسنج رسمی W3C. کد را می‌چسبانی و فهرست خطاها را می‌بینی. روش کارش را در جلسهٔ سوم قدم‌به‌قدم توضیح داده‌ایم. عادت کن قبل از انتشار هر صفحه یک بار این کار را انجام بدهی.

HTML5 نیاز به یادگیری جداگانه دارد؟

نه. چیزی که امروز به آن HTML می‌گوییم همان HTML5 و نسخه‌های بعدی‌اش است. اگر منبعی دیدی که HTML و HTML5 را دو دورهٔ جدا می‌فروشد، احتمالاً محتوایش قدیمی است.

بعد از این دوره می‌توانم سایت کامل بسازم؟

ساختار سایت را بله، ظاهر و رفتارش را نه. برای یک سایت واقعی به CSS برای چیدمان و به جاوااسکریپت برای تعامل هم نیاز داری. این دوره لایهٔ اولی است که آن دو تا رویش سوار می‌شوند.

جمع‌بندی و قدم بعدی

HTML اسکلت هر چیزی است که در وب می‌بینی. این ۶۵ جلسه طوری چیده شده که از یک فایل خالی شروع کنی و به جایی برسی که ساختار یک سایت کامل، به‌همراه دسترس‌پذیری و تنظیمات سئوی <head>، را خودت کنترل کنی.

قدم بعدی مشخص است: برو سراغ جلسهٔ اول، HTML چیست. اگر هم قبلاً پایه را بلدی، دو صفحهٔ زیر بیشتر به کارت می‌آید.