Menu
Coddy logo textTech
flag Ar iconالعربيةdown icon

تخطيط الكأس المقدسة (Holy Grail)

جزء من قسم Practical Frontend في رحلة HTML على Coddy. الدرس 26 من 35.

يُعد تخطيط الكأس المقدسة (Holy Grail Layout) نمطاً كلاسيكياً لتصميم الويب، حيث يتكون من رأس (header) في الأعلى، وتذييل (footer) في الأسفل، وثلاثة أعمدة في المنتصف:

  • الشريط الجانبي الأيسر (التنقل أو الروابط)
  • المحتوى الرئيسي (المركز)
  • الشريط الجانبي الأيمن (معلومات إضافية، إعلانات، أو أدوات)

يُطلق عليه اسم "الكأس المقدسة" لأنه يبقي المحتوى الرئيسي في المنتصف، وهو شائع جداً في المدونات، والمواقع الإخبارية، ولوحات التحكم.

كيف يعمل:

  • تم بناؤه باستخدام CSS Flexbox أو Grid.
  • يتمدد المحتوى الرئيسي ليملأ المساحة، بينما تمتلك الأشرطة الجانبية عرضاً ثابتاً أو أصغر.
  • على الشاشات الصغيرة، تتراكم الأشرطة الجانبية فوق أو تحت المحتوى الرئيسي لتحسين قابلية القراءة.

مثال على استخدام CSS Grid (مبسط) 

HTML:

<div class="container">
  <header>Header</header>
  <nav>Navigation</nav>
  <main>Main Content</main>
  <aside>Sidebar</aside>
  <footer>Footer</footer>
</div>

CSS:

.container {
 display: grid;
 grid-template-areas:
   "header header header"
   "nav main aside"
   "footer footer footer";
 grid-template-columns: 200px 1fr 200px;
}
header { grid-area: header; }
nav { grid-area: nav; }
main { grid-area: main; }
aside { grid-area: aside; }
footer { grid-area: footer; }
challenge icon

التحدي

سهل

قم بإنشاء تخطيط Holy Grail Layout بالمتطلبات التالية:

  1. استخدم متغير CSS يسمى --main-color للون خلفية الـ header والـ footer.
  2. قم بتعريف قيم grid-area لكل من header، و footer، و nav، و main، و aside.
  3. قم بتوسيط النص داخل الـ header والـ footer.

جرّب بنفسك

<!DOCTYPE html>
<html>
<head>
  <title>Holy Grail Layout</title>
  <style>
    :root {
      --main-color: rgb(76, 175, 239); /* header/footer */
      --accent-color: #ff9800; /* highlights */
      --text-color: #333;
      --heading-color: #222;
    }

    body {
      margin: 0;
      font-family: "Segoe UI", Arial, sans-serif;
      background: #a9eef3;
      color: var(--text-color);
    }

    .container {
      display: grid;
      grid-template-areas:
        "header header header"
        "nav main aside"
        "footer footer footer";
      grid-template-columns: 160px 1fr 180px;
      min-height: 100vh;
      gap: 1rem;
    }

    header {
      color: white;
      padding: 1.5rem;
    }

    footer {
      color: white;
      padding: 1rem;
    }

    nav {
      background: #f4f4f4;
      padding: 1rem;
      border-radius: 8px;
      box-shadow: 0 2px 6px rgba(0,0,0,0.1);
    }

    nav h3 {
      margin-top: 0;
      color: var(--heading-color);
    }

    nav ul {
      list-style: none;
      padding: 0;
    }

    nav li {
      margin: 0.5rem 0;
    }

    nav a {
      text-decoration: none;
      color: var(--text-color);
      padding: 0.3rem 0.5rem;
      border-radius: 4px;
      transition: background 0.2s;
    }

    nav a:hover {
      background: var(--accent-color);
      color: white;
    }

    main {
      padding: 1.5rem;
      background: #fff;
      border-radius: 10px;
      box-shadow: 0 2px 10px rgba(0,0,0,0.08);
    }

    main h2 {
      margin-top: 0;
      color: var(--heading-color);
    }

    aside {
      background: #fff7e6;
      padding: 1rem;
      border-radius: 8px;
      box-shadow: 0 2px 6px rgba(0,0,0,0.08);
    }

    aside h3 {
      margin-top: 0;
      color: var(--accent-color);
    }
  </style>
</head>
<body>
  <div class="container">
    <header>
      <h1>Travel Adventures</h1>
      <p>Explore the world, one journey at a time</p>
    </header>

    <nav>
      <h3>Navigation</h3>
      <ul>
        <li><a href="#">Destinations</a></li>
        <li><a href="#">Travel Tips</a></li>
        <li><a href="#">Photo Gallery</a></li>
      </ul>
    </nav>

    <main>
      <h2>Featured Destination: Japan</h2>
      <p>
        Japan is a country where ancient traditions meet modern innovation. 
        From the serene temples of Kyoto to the bustling streets of Tokyo, 
        there’s something for every traveler.
      </p>
      <p>
        Don’t forget to try sushi, explore cherry blossoms in spring, 
        and relax in an onsen hot spring bath.
      </p>
    </main>

    <aside>
      <h3>Quick Facts</h3>
      <ul>
        <li>Capital: Tokyo</li>
        <li>Language: Japanese</li>
        <li>Currency: Yen</li>
      </ul>
    </aside>

    <footer>
      <p>&copy; 2025 Travel Adventures Blog</p>
    </footer>
  </div>
</body>
</html>
quiz iconاختبر نفسك

يتضمن هذا الدرس اختبارًا قصيرًا. ابدأ الدرس للإجابة عليه وتتبّع تقدمك.

جميع دروس Practical Frontend

تدرّب بنفسك: Playground لـ Web