جزوه آموزش HTML از صفر تا کاربرد در نوشته‌های وردپرس

شروع کار با HTML در وردپرس

  • HTML چیست: زبانی برای ساختار صفحه وب؛ با «تگ‌ها» بخش‌هایی مثل عنوان، پاراگراف، تصویر و لینک را می‌سازیم.
  • قرار دادن کد در وردپرس: در ویرایشگر گوتنبرگ، یک بلوک «HTML سفارشی» اضافه کنید و کدها را همان‌جا بچسبانید.
  • قانون طلایی: هر تگ معمولا یک «شروع» و یک «پایان» دارد. فراموش کردن پایان باعث به‌هم‌ریختگی صفحه می‌شود.

نکته سریع

برای تمرین امن، نمونه‌ها را در یک بلوک جداگانه بگذارید تا بقیه نوشته تحت تأثیر قرار نگیرد.

اسکلت‌بندی پایه صفحه

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

<!-- اسکلت پایه برای تمرین داخل نوشته وردپرس -->
<section>
  <h1>سلام دنیا!</h1>
  <p>این اولین پاراگراف من در HTML است.</p>
</section>
سلام دنیا!
این اولین پاراگراف من در HTML است.

خطای رایج

فراموش کردن علامت‌های < و > یا بستن تگ‌ها. مثلا نوشتن h1 بدون <h1>…</h1>.

تگ‌های مهم متن: عنوان، پاراگراف و خط جداکننده

عناوین h1 تا h6

<h1>عنوان اصلی صفحه</h1>
<h2>عنوان بخش</h2>
<h3>زیرعنوان</h3>

پاراگراف و خط افقی

<p>این یک پاراگراف توضیحی است.</p>
<hr><!-- خط جداکننده -->

هشدار طراحی

از چندین h1 در یک صفحه استفاده نکنید؛ معمولا یک h1 کافی است و بقیه را با h2 و h3 مرتب کنید.

فهرست‌ها: مرتب و نامرتب

برای نمایش آیتم‌ها از لیست استفاده می‌کنیم.

<h3>نامرتب (bullet)</h3>
<ul>
  <li>آیتم اول</li>
  <li>آیتم دوم</li>
</ul>

<h3>مرتب (شماره‌دار)</h3>
<ol>
  <li>مرحله ۱</li>
  <li>مرحله ۲</li>
</ol>

خطای رایج

قرار دادن متن مستقیم داخل <ul> یا <ol> بدون <li>. هر آیتم باید داخل <li> باشد.

لینک‌ها و تصاویر

لینک ساده

<a href="https://example.com" target="_blank">برو به سایت</a>

تصویر با متن جایگزین

<img src="https://picsum.photos/400/220" alt="نمونه تصویر تصادفی" width="400" height="220">

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

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

جدول‌ها برای داده‌های ساختاریافته

<table>
  <thead>
    <tr>
      <th>نام</th>
      <th>سن</th>
      <th>شهر</th>
    </tr>
  </thead>
  <tbody>
    <tr>
      <td>مریم</td>
      <td>16</td>
      <td>تهران</td>
    </tr>
    <tr>
      <td>آرین</td>
      <td>15</td>
      <td>اصفهان</td>
    </tr>
  </tbody>
</table>

هشدار

جدول‌ها برای نمایش داده‌های جدولی‌اند؛ برای چیدمان صفحه از جدول استفاده نکنید، بجایش از CSS بهره ببرید.

استفاده سریع از CSS داخل نوشته وردپرس

سه روش رایج داریم: درون‌خطی (inline)، داخلی (style) و خارجی (فایل جدا). در نوشته‌ها معمولا داخلی و درون‌خطی کافی است.

درون‌خطی

<p style="color:#16a34a; font-weight:bold">این متن سبز و بولد است</p>

سبک داخلی برای یک بخش

<style>
  .badge { background:#22d3ee; color:#081521; padding:.2rem .5rem; border-radius:.5rem; font-weight:700 }
</style>

<p>این یک <span class="badge">برچسب زیبا</span> است.</p>

خطای رایج

فراموش کردن نقطه در کلاس‌ها: .badge با badge فرق دارد؛ برای کلاس‌ها در CSS همیشه نقطه بگذارید.

تگ‌های معنایی (Semantic): ساختار استاندارد

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

<header>هدر سایت</header>
<nav>منو</nav>
<main>
  <article>محتوای اصلی</article>
  <aside>بخش جانبی</aside>
</main>
<footer>پابرگ</footer>

نکته

در نوشته‌ها، استفاده از <section> و <article> برای گروه‌بندی بخش‌ها مفید است.

فرم‌ها: ورودی از کاربر

فرم‌ها اطلاعات را از کاربر می‌گیرند. در وردپرس معمولاً برای ارسال واقعی از افزونه‌ها استفاده می‌شود؛ اینجا فقط نمایش و اعتبارسنجی ساده را می‌بینیم.

<form onsubmit="alert('فرم ارسال شد!'); return false;">
  <label for="name">نام:</label>
  <input id="name" name="name" type="text" placeholder="اسم خود را بنویسید" required>

  <label for="age">سن:</label>
  <input id="age" name="age" type="number" min="1" max="120" required>

  <button type="submit">ارسال</button>
</form>

هشدار

برای ذخیره‌سازی واقعی داده‌ها در وردپرس از افزونه‌های فرم (مثل فرم‌سازها) استفاده کنید؛ نمونه بالا فقط نمایشی است.

ریسپانسیو ساده: سازگاری با موبایل

با media query می‌توانیم اندازه‌ها را برای موبایل کوچک‌تر کنیم.

<style>
  @media (max-width: 600px) {
    .box { padding: .8rem; font-size: .95rem }
  }
  .box { background:#0b1426; color:#cfe8ff; padding:1rem; border-radius:.8rem }
</style>

<div class="box">این یک باکس ریسپانسیو است</div>

دسترس‌پذیری پایه

  • متن جایگزین تصاویر: همیشه alt توصیفی بگذارید.
  • کنتراست رنگ: متن روشن روی پس‌زمینه تیره یا برعکس، خوانایی را زیاد می‌کند.
  • برچسب برای ورودی‌ها: از <label> با for استفاده کنید تا با صفحه‌خوان‌ها سازگار باشد.

اشتباهات بسیار رایج و راه‌حل‌ها

۱) فراموش کردن بستن تگ‌ها

<p>سلام
<!-- درست: -->
<p>سلام</p>

۲) گذاشتن تگ‌ها داخل هم به‌صورت اشتباه

<a href="#"><p>اشتباه است</p></a>
<!-- بهتر: لینک داخل متن پاراگراف -->
<p>این <a href="#">لینک</a> داخل پاراگراف است.</p>

۳) استفاده از نقل‌قول نامناسب در صفات

<img src=https://picsum.photos/200 alt=بدون-کوتیشن> <!-- ممکن است مشکل ایجاد کند -->
<!-- درست: -->
<img src="https://picsum.photos/200" alt="نمونه تصویر">

۴) بی‌توجهی به جهت متن فارسی

<section dir="rtl">این متن راست‌به‌چپ است</section>

تمرین‌های کوچک برای کلاس

تمرین ۱: کارت معرفی شخصی

یک کارت بساز که نام، سن، شهر و یک عکس کوچک داشته باشد.

<style>
  .card-mini { background:#0c1427; border:1px solid #152544; border-radius:12px; padding:1rem; width:320px }
  .card-mini img { width:100%; border-radius:10px; margin:.5rem 0 }
  .card-mini h3 { margin:.2rem 0 }
  .muted { color:#9ca3af; font-size:.9rem }
</style>

<div class="card-mini" dir="rtl">
  <h3>نام: مریم</h3>
  <p class="muted">سن: ۱۶ | شهر: تهران</p>
  <img src="https://picsum.photos/320/180" alt="عکس پروفایل نمادین">
  <p>علاقه‌مندی‌ها: برنامه‌نویسی، طراحی وب و آموزش</p>
</div>

تمرین ۲: فهرست خرید مرتب

یک لیست شماره‌دار از سه مورد بساز و برای هر مورد یک توضیح کوتاه بده.

<ol>
  <li><b>دفتر ۱۰۰ برگ:</b> برای یادداشت‌های روزانه</li>
  <li><b>خودکار آبی:</b> خوانایی بهتر متن</li>
  <li><b>پاک‌کن نرم:</b> مناسب برای مداد HB</li>
</ol>

تمرین ۳: جدول برنامه هفتگی

یک جدول با روزها و ساعات بساز. حداقل دو سطر و سه ستون داشته باشد.

<table>
  <thead>
    <tr><th>روز</th><th>۸-۱۰</th><th>۱۰-۱۲</th></tr>
  </thead>
  <tbody>
    <tr><td>شنبه</td><td>ریاضی</td><td>علوم</td></tr>
    <tr><td>یکشنبه</td><td>ادبیات</td><td>ورزش</td></tr>
  </tbody>
</table>

تمرین ۴: فرم نظر

یک فرم کوتاه با نام و نظر بساز. ارسال واقعی لازم نیست، فقط پیام نمایش بده.

<form onsubmit="alert('نظر شما ثبت شد (نمونه)!'); return false;">
  <label for="n">نام:</label>
  <input id="n" name="n" type="text" required>

  <label for="c">نظر:</label>
  <textarea id="c" name="c" rows="3" required></textarea>

  <button type="submit">ارسال نظر</button>
</form>

پیشرفته‌ی کاربردی در نوشته: بلوک‌های زیبا و قابل‌استفاده

کادر اطلاع‌رسانی سه‌رنگ

<style>
  .notice { border:1px solid #1f2b44; border-radius:12px; padding:1rem; margin:.7rem 0 }
  .notice.info { background:#0b1426; color:#cfe8ff }
  .notice.success { background:#0b261e; color:#b6f3d6 }
  .notice.warn { background:#291f0c; color:#ffe6b3 }
  .notice h4 { margin:.2rem 0 .4rem 0 }
</style>

<div class="notice info" dir="rtl">
  <h4>اطلاعات</h4>
  <p>کلاس چهارشنبه ساعت ۱۶ برگزار می‌شود.</p>
</div>

<div class="notice success" dir="rtl">
  <h4>موفقیت</h4>
  <p>تمرین‌های جلسه قبل با موفقیت تحویل داده شد!</p>
</div>

<div class="notice warn" dir="rtl">
  <h4>هشدار</h4>
  <p>ارسال پروژه بعد از مهلت، نمره کمتری خواهد داشت.</p>
</div>

گرید کارت‌ها (۳ ستونی، ریسپانسیو)

<style>
  .grid { display:grid; grid-template-columns: repeat(3, 1fr); gap: .9rem }
  .grid .item { background:#0c1427; border:1px solid #18243d; border-radius:12px; padding:.9rem }
  @media (max-width: 800px){ .grid { grid-template-columns: repeat(2, 1fr) } }
  @media (max-width: 520px){ .grid { grid-template-columns: 1fr } }
</style>

<div class="grid" dir="rtl">
  <div class="item"><b>جلسه ۱:</b> آشنایی با HTML</div>
  <div class="item"><b>جلسه ۲:</b> فهرست‌ها و لینک‌ها</div>
  <div class="item"><b>جلسه ۳:</b> تصاویر و جدول‌ها</div>
</div>

آموزش کامل تگ <div> در HTML

تگ <div> برای بخش‌بندی و گروه‌بندی عناصر استفاده می‌شود. خودش ظاهر خاصی ندارد اما با CSS یا جاوااسکریپت می‌توان آن را زیبا و کاربردی کرد.

قوانین مهم تگ div

  • می‌تواند هر تگ دیگری را درون خود داشته باشد.
  • به‌تنهایی فقط یک ظرف است و ظاهر ندارد.
  • برای استایل‌دهی باید از class یا id استفاده کنید.
  • استفاده بیش از حد بدون دلیل باعث شلوغی کد می‌شود.

🔟 مثال ساده با خروجی

۱) گروه‌بندی متن

<div>
  <h2>عنوان بخش</h2>
  <p>این یک پاراگراف داخل div است.</p>
</div>

عنوان بخش

این یک پاراگراف داخل div است.

۲) استایل‌دهی با CSS

<div style="background:#e0f7fa; padding:10px;">
  متن داخل div با پس‌زمینه آبی روشن
</div>
متن داخل div با پس‌زمینه آبی روشن

۳) چند div کنار هم

<div style="background:#ffccbc; width:100px; display:inline-block;">بخش ۱</div>
<div style="background:#c8e6c9; width:100px; display:inline-block;">بخش ۲</div>
بخش ۱
بخش ۲

۴) استفاده از کلاس

<style>
  .box { border:1px solid #333; padding:8px; margin:5px; }
</style>
<div class="box">کادر اول</div>
<div class="box">کادر دوم</div>
کادر اول
کادر دوم

۵) استفاده از id

<style>
  #special { background:#f0f0f0; color:red; padding:10px; }
</style>
<div id="special">این div خاص است</div>
این div خاص است

۶) تصویر داخل div

<div style="border:2px dashed blue; padding:10px;">
  <img src="https://picsum.photos/150" alt="نمونه تصویر">
  <p>تصویر داخل div قرار دارد.</p>
</div>
نمونه تصویر

تصویر داخل div قرار دارد.

۷) کارت معرفی

<div style="border:1px solid #aaa; border-radius:8px; padding:10px; width:200px;">
  <h3>مریم</h3>
  <p>سن: ۱۶</p>
  <p>شهر: تهران</p>
</div>

مریم

سن: ۱۶

شهر: تهران

۸) چیدمان ستونی با Flexbox

<style>
  .container { display:flex; gap:10px; }
  .item { background:#ddd; padding:10px; flex:1; }
</style>
<div class="container">
  <div class="item">ستون ۱</div>
  <div class="item">ستون ۲</div>
  <div class="item">ستون ۳</div>
</div>
ستون ۱
ستون ۲
ستون ۳

۹) مخفی و نمایش

<style>
  .hidden { display:none; }
</style>
<div>این div دیده می‌شود.</div>
<div class="hidden">این div مخفی است.</div>
این div دیده می‌شود.

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *