Tata Letak Holy Grail
Termasuk bagian Frontend Praktis dalam perjalanan HTML di Coddy. Pelajaran 26 dari 35.
Holy Grail Layout adalah pola desain web klasik dengan header di bagian atas, footer di bagian bawah, dan tiga kolom di tengah:
- Bilah sisi kiri (navigasi atau tautan)
- Konten utama (tengah)
- Bilah sisi kanan (info tambahan, iklan, atau widget)
Ini disebut “Holy Grail” karena menempatkan konten utama di tengah dan sangat umum digunakan di blog, situs berita, dan dasbor.
Cara kerjanya:
- Dibuat dengan CSS Flexbox atau Grid.
- Konten utama membesar untuk mengisi ruang, sementara sidebar memiliki lebar tetap atau lebih kecil.
- Di layar kecil, sidebar ditumpuk di atas atau di bawah konten utama agar lebih mudah dibaca.
Contoh menggunakan CSS Grid (disederhanakan)
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; }Tantangan
MudahBuat tata letak Holy Grail dengan persyaratan berikut:
- Gunakan variabel CSS bernama
--main-coloruntuk warna latar belakang header dan footer. - Tentukan nilai grid-area untuk
header,footer,nav,main, danaside. - Tengahkan teks di dalam header dan footer.
Coba sendiri
<!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>© 2025 Travel Adventures Blog</p>
</footer>
</div>
</body>
</html>
Pelajaran ini berisi kuis singkat. Mulai pelajarannya untuk menjawab kuis dan melacak progresmu.
Semua pelajaran di Frontend Praktis
3Tema dan Gaya Visual
Penerapan Tema di CSSDasar Mode Gelap dan TerangWarna Aksen dan PenyorotanTema TipografiTantangan Rangkuman6Pola Responsif
Tata Letak Holy GrailTata Letak Grid KartuTata Letak Sidebar + KontenTata Letak Layar TerbagiHeader / Footer TetapTantangan UlasanLatihan sendiri: Playground Web