CodeBlanks Logo Icon CodeBlanks

Meydan okuma - İleri seviye projesi

HTML kursu · İleri seviye · Ders 56/56

Tüm ileri konuları birleştiren bir dashboard sayfası yazarsın.

İleri seviye projesi meydan okuması

Bu son meydan okuma, ileri seviyenin tamamını birleştiren bir dashboard sayfası yazmanı ister: anlamsal iskelet, responsive görsel, erişilebilir video, karmaşık form ve veri tablosu.

Sayfa şu parçaları içermeli: <header>, <nav>, <main>, <aside>, <footer>; main içinde en az iki <section>; birinde <picture> ile hero, diğerinde <video> ve <track>; aside'da bir <table> (<thead>, <tbody>); main'in sonunda <form> içinde <fieldset> ve <output>. <noscript> yedeğini de unutma.

Uygulama İleri seviye dashboard sayfasını yaz

Aşağıdaki iskeletin <body>'sini doldur. <header> içinde bir <h1>; <nav> içinde üç <a href="#...">; <main> içinde iki <section> — birincide bir <picture> (en az bir <source> ve bir <img>); ikincide bir <video controls> içinde bir <source> ve bir <track kind="captions">. main'in sonuna bir <form> ekle; içinde bir <fieldset>, bir <label> + <input type="range"> ve bir <output>Bekliyor</output> olsun. <aside> içinde bir <table> (<thead>, <tbody> ve en az bir <tr>). Sayfa <footer> ve <noscript> ile bitsin.

Örnek çözümü göster
<!DOCTYPE html>
<html lang="tr">
<head>
  <meta charset="utf-8">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <title>Panel</title>
</head>
<body>
  <header>
    <h1>Seyahat Paneli</h1>
  </header>
  <nav>
    <a href="#galeri">Galeri</a>
    <a href="#video">Video</a>
    <a href="#kayit">Kayıt</a>
  </nav>
  <main>
    <section id="galeri">
      <h2>Galeri</h2>
      <picture>
        <source media="(min-width: 800px)" srcset="/gorseller/pano-genis.jpg">
        <img src="/gorseller/pano-dar.jpg" alt="Panorama" width="1200" height="600" loading="lazy">
      </picture>
    </section>
    <section id="video">
      <h2>Tanıtım</h2>
      <video controls poster="/medya/on-kare.jpg">
        <source src="/medya/tanitim.mp4" type="video/mp4">
        <track kind="captions" srclang="tr" label="Türkçe" src="/medya/altyazi-tr.vtt">
      </video>
    </section>
    <form action="/kayit" method="post">
      <fieldset>
        <legend>Tercih</legend>
        <label for="oncesi">Önceki</label>
        <input id="oncesi" name="oncesi" type="range" min="0" max="100">
        <label for="sonuc">Durum</label>
        <output id="sonuc" name="sonuc">Bekliyor</output>
      </fieldset>
    </form>
  </main>
  <aside>
    <h2>Geçmiş</h2>
    <table>
      <thead>
        <tr>
          <th scope="col">Tarih</th>
          <th scope="col">Şehir</th>
        </tr>
      </thead>
      <tbody>
        <tr>
          <td>Mayıs</td>
          <td>İstanbul</td>
        </tr>
      </tbody>
    </table>
  </aside>
  <footer>
    <p>© 2026 Seyahat Paneli</p>
  </footer>
  <noscript>Tarayıcın JavaScript'i kapalı; bazı bölümler görünmeyebilir.</noscript>
</body>
</html>

Kendini test et

  1. Dashboard'da yan panele (son etkinlikler, hızlı bağlantılar) hangi anlamsal etiket uyar?

    • <section>
    • <aside>
    • <article>
    • <main>
    Cevabı göster

    <aside> — Doğru. <aside> ana içerikle ilgili ama yan/tamamlayıcı içerik taşır; panel buna uyar.

  2. noscript yedeğini yaz

    <main>
      <section>...</section>
    </main>
    <____>Tarayıcın JavaScript'i kapalı; bazı bölümler görünmeyebilir.</noscript>
    Cevabı göster
    <main>
      <section>...</section>
    </main>
    <noscript>Tarayıcın JavaScript'i kapalı; bazı bölümler görünmeyebilir.</noscript>
  3. Anlamsal etiketi rolüyle eşleştir

    <main>
    Ana içerik
    <aside>
    Yan panel
    <section>
    Bölüm
    <article>
    Bağımsız kart
    <noscript>
    Betik yedeği

İleri seviye bölümündeki tüm dersler