Sampai tahap ini halaman profil tampil dengan gaya bawaan browser. Bagian ini menatanya dengan satu file styles/style.css yang berada di folder proyek, sejajar dengan folder assets dan tests. Seluruh tahap selanjutnya memakai stylesheet yang sama, sehingga kita menuliskannya sekali hingga tuntas — termasuk dua aturan untuk tombol dan dialog yang baru terpakai pada Bagian 4. Materi dasarnya berasal dari section HTML dan CSS; di sini kita menyatukannya untuk kasus nyata.
Prinsip Penataan Halaman Profil #
Stylesheet proyek berpegang pada lima prinsip berikut:
- Palet warna konsisten yang didefinisikan sekali sebagai custom properties, yaitu variabel CSS.
- Skala jarak seragam 16px agar renggangan antarbagian terasa rapi.
- Container utama selebar maksimum 720px yang menengahkan konten pada layar lebar.
- Section tampil sebagai kartu putih di atas latar abu agar batas antarkelompok konten terlihat.
- Gambar dibatasi max-width: 100% supaya tidak meluber dari wadahnya.
Custom properties didefinisikan pada pemilih :root, lalu dipakai ulang melalui fungsi var(). Bila palet ingin diganti, kita cukup mengubah nilai di satu tempat. Untuk menyejajarkan logo dan teks pada header, stylesheet memakai flexbox melalui display: flex; dasar-dasarnya pernah disinggung pada section HTML dan CSS, dan rujukan lengkapnya ada di akhir bagian ini.
Isi Stylesheet Proyek #
Berikut isi utuh styles/style.css:
/* Stylesheet proyek Halaman Profil - ditulis pada Bagian 3, dipakai Bagian 3 dan 4 */
:root {
--warna-utama: #1a6b54;
--warna-teks: #1f2937;
--warna-latar: #f3f4f6;
--warna-putih: #ffffff;
--jarak: 16px;
}
* {
box-sizing: border-box;
}
body {
margin: 0;
font-family: system-ui, sans-serif;
line-height: 1.6;
color: var(--warna-teks);
background-color: var(--warna-latar);
}
header,
footer {
background-color: var(--warna-utama);
color: var(--warna-putih);
}
header {
display: flex;
align-items: center;
gap: var(--jarak);
padding: var(--jarak);
}
img {
max-width: 100%;
height: auto;
}
header img {
width: 56px;
border-radius: 50%;
}
main {
max-width: 720px;
margin: 0 auto;
padding: var(--jarak);
}
section {
margin-bottom: var(--jarak);
padding: var(--jarak);
background-color: var(--warna-putih);
border-radius: 8px;
}
h2 {
margin-top: 0;
color: var(--warna-utama);
}
footer p {
margin: 0;
padding: var(--jarak);
text-align: center;
}
button {
padding: 10px 20px;
border: none;
border-radius: 6px;
font-size: 1rem;
background-color: var(--warna-utama);
color: var(--warna-putih);
cursor: pointer;
}
dialog {
max-width: 360px;
padding: var(--jarak);
border: none;
border-radius: 8px;
}
dialog::backdrop {
background-color: rgba(31, 41, 55, 0.5);
}Dua aturan terakhir — button dan dialog — dipakai mulai Bagian 4. Menuliskannya sekarang membuat stylesheet tuntas sekali jadi, tanpa perlu menyunting file yang sama di dua tahap berbeda.
Mari kita bedah aturan-aturan pentingnya:
- Blok
:root: lima custom properties — empat warna palet dan--jarak16px — yang dipakai ulang oleh seluruh aturan lain melaluivar(). - Aturan universal
*denganbox-sizing: border-box: padding dan border dihitung di dalam lebar elemen, sehingga kartu tidak meluber saat diberi jarak. - Aturan body: font system-ui, tinggi baris 1.6, warna teks gelap, dan latar abu dari palet.
- Aturan header dan footer: latar hijau utama dengan teks putih; header memakai
display: flex,align-items: center, dangapagar logo serta teksnya sejajar berdampingan. - Aturan img dan header img:
max-width: 100%denganheight: automembuat gambar menyusut mengikuti wadahnya tanpa mengubah proporsi; aturan header img kemudian menetapkan logo 56px berbentuk bundar. - Aturan main, section, dan h2: container 720px di tengah layar, kartu putih bersudut bulat, dan judul section berwarna hijau.
- Aturan button, dialog, dan dialog::backdrop: tombol hijau bersudut bulat, kartu dialog tanpa border bawaan, serta lapisan gelap tembus pandang di belakang dialog.
Menghubungkan Stylesheet ke Halaman #
File profil-styling.html pada folder bagian ini adalah profil-konten.html ditambah satu baris link di dalam head:
<link rel="stylesheet" href="../styles/style.css">Jalur ../styles/style.css dibaca relatif terhadap lokasi file HTML: keluar satu folder dari part-3-styling-dasar, lalu masuk ke folder styles. Pohon folder pada overview proyek menjaga jalur ini tetap benar.
Output yang Dihasilkan:
Tampilan halaman berubah total:
- Header dan footer berlatar hijau dengan teks putih
- Tiga section tampil sebagai kartu putih di atas latar abu
- Judul "Tentang Saya", "Keahlian", dan "Kontak" berwarna hijau
- Logo tampil bundar dengan lebar 56pxPemeriksaan Hasil Tahap Ini #
- Pastikan styles/style.css berada di folder proyek, lalu buka profil-styling.html di browser.
- Perkecil lebar jendela dan amati: kartu mengikuti lebar layar sementara isinya tetap terbaca tanpa meluber.
- Buka tests/cek-struktur.html, lalu centang butir-butir stylesheet dan tampilan yang telah dipenuhi.
Konten dan tampilan telah menyatu. Tinggal satu lapisan tersisa: perilaku interaktif pada Bagian 4.
Referensi resmi untuk pendalaman:
- MDN Web Docs — Learn: CSS styling basics
- MDN Web Docs — Using CSS custom properties (–*)
- MDN Web Docs — CSS Flexible Box Layout
Berkas Sumber
Berkas pendukung halaman ini dapat diunduh dan dijalankan langsung sesuai penjelasan di atas.
profil-styling.html
Unduh berkas<!doctype html>
<html lang="id">
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
<meta name="description" content="Profil singkat Budi Santoso, pengembang web pemula yang gemar membangun halaman web.">
<title>Profil Budi Santoso</title>
<link rel="stylesheet" href="../styles/style.css">
</head>
<body>
<header>
<img src="../assets/logo.svg" alt="Logo monogram BS" width="56" height="56">
<div>
<h1>Budi Santoso</h1>
<p>Pengembang web pemula di Bandung</p>
</div>
</header>
<main>
<section id="tentang-saya">
<h2>Tentang Saya</h2>
<p>Saya Budi, pengembang web pemula yang menekuni HTML dan CSS selama satu tahun terakhir. Sehari-hari saya membantu pengelola komunitas belajar memelihara situs informasi yang dibangun dengan HTML murni. Tujuan saya menjadi pengembang front-end yang mengutamakan halaman ringan dan mudah diakses siapa pun.</p>
</section>
<section id="keahlian">
<h2>Keahlian</h2>
<ul>
<li>Menyusun dokumen HTML yang valid</li>
<li>Menata tampilan dengan CSS dasar</li>
<li>Menambahkan interaksi sederhana dengan JavaScript</li>
</ul>
</section>
<section id="kontak">
<h2>Kontak</h2>
<p>Saya terbuka untuk kolaborasi proyek kecil. Cara menghubungi saya:</p>
<address>
Surel: <a href="mailto:[email protected]">[email protected]</a><br>
Alamat: Jl. Melati No. 10, Bandung
</address>
</section>
</main>
<footer>
<p>© 2025 Budi Santoso</p>
</footer>
</body>
</html>