Topik: CSS Fundamentals, Selector, Color, Typography, dan Box Model
Pada Pertemuan 1 kita membuat profil usaha menggunakan HTML dasar. Pada Pertemuan 2 halaman tersebut berkembang menjadi katalog dan form data produk. Struktur halaman sudah mulai terasa seperti sebuah aplikasi, tetapi tampilannya masih mengikuti gaya bawaan browser.
Sekarang kita mulai menggunakan CSS. CSS tidak mengubah fungsi utama HTML. HTML tetap menyimpan struktur dan konten, sedangkan CSS bertugas mengatur bagaimana konten tersebut ditampilkan.
Agar project semester tetap nyambung, contoh praktik akan menggunakan produk dan katalog NusaTech Store. Namun konsep CSS yang dipelajari bersifat umum dan dapat diterapkan pada website apa pun.
Prinsip yang Perlu DiingatHTML menjawab: apa isi dan struktur halaman?
CSS menjawab: bagaimana halaman tersebut ditampilkan?
Pisahkan struktur dan tampilan agar source code lebih mudah dibaca, dirawat, dan dikembangkan.
Materi dibagi menjadi 5 bagian utama. Setiap bagian ditutup dengan praktik coding. Pada akhir pertemuan, mahasiswa akan membuat Katalog Produk Sederhana dengan Product Card.
Target Pembelajaran
- Memahami fungsi CSS dalam pengembangan website.
- Memahami perbedaan inline, internal, dan external CSS secara umum.
- Menghubungkan file HTML dengan external CSS.
- Memahami aturan dasar selector, property, dan value.
- Menggunakan element selector, class selector, dan ID selector.
- Memahami konsep specificity secara sederhana.
- Mengatur warna teks dan background.
- Mengatur typography menggunakan font-family, font-size, font-weight, line-height, dan text-align.
- Memahami content, padding, border, dan margin pada Box Model.
- Menggunakan box-sizing: border-box.
- Menggunakan border-radius dan box-shadow.
- Membuat Product Card sebagai mini project.
Materi 1 — Mengenal CSS dan Menghubungkannya dengan HTML
CSS adalah singkatan dari Cascading Style Sheets. CSS digunakan untuk mengatur tampilan elemen HTML, misalnya warna, ukuran teks, jarak, border, background, dan posisi elemen.
Tiga Cara Menggunakan CSS
CSS dapat ditulis dengan tiga cara:
- Inline CSS — ditulis langsung pada attribute style.
- Internal CSS — ditulis di dalam elemen style pada bagian head.
- External CSS — ditulis pada file CSS terpisah.
Dalam project kita, metode utama yang digunakan adalah external CSS karena struktur HTML dan tampilan dapat dipisahkan dengan lebih rapi.
Struktur Folder Project
Struktur Folderpertemuan-03/
|
+-- index.html
|
+-- css/
|
+-- style.css
Menghubungkan HTML dengan CSS
Elemen link pada HTML<link
rel="stylesheet"
href="css/style.css"
>
Attribute rel="stylesheet" memberi tahu browser bahwa file tersebut adalah stylesheet, sedangkan href="css/style.css" menunjukkan lokasi file CSS.
Anatomi Aturan CSS
Contoh Aturan CSSh1 {
color: #2563eb;
}
Pada contoh tersebut, h1 adalah selector, color adalah property, dan #2563eb adalah value.
Coding 1 — CSS Pertama untuk Katalog Produk
index.html<!DOCTYPE html>
<html lang="id">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Katalog Produk</title>
<link rel="stylesheet" href="css/style.css">
</head>
<body>
<h1>NusaTech Store</h1>
<p>
Katalog perlengkapan digital
untuk belajar dan bekerja.
</p>
<h2>Produk Unggulan</h2>
<p>
Keyboard Mechanical — Rp350.000
</p>
</body>
</html>
css/style.css
body {
background-color: #f4f4f4;
}
h1 {
color: #1d4ed8;
}
h2 {
color: #111827;
}
p {
color: #374151;
}
Jika CSS Tidak TerbacaPeriksa lokasi file style.css, penulisan href, nama folder, dan pastikan file sudah disimpan sebelum browser di-refresh.
Target Coding 1: mahasiswa mampu menghubungkan HTML dengan external CSS dan melihat perubahan tampilan di browser.
Materi 2 — Memahami Selector: Element, Class, dan ID
CSS perlu mengetahui elemen mana yang ingin diubah. Untuk itu kita menggunakan selector. Tiga selector dasar yang perlu dipahami adalah element, class, dan ID.
Element Selector
Element selector menggunakan nama tag HTML secara langsung.
Element Selectorp {
color: #374151;
}
Class Selector
Class digunakan untuk memberi nama kelompok elemen. Pada CSS, class ditulis menggunakan tanda titik. Satu class dapat digunakan oleh banyak elemen.
Class di HTML<p class="harga">
Rp350.000
</p>
Class Selector di CSS
.harga {
color: #047857;
font-weight: bold;
}
ID Selector
ID digunakan untuk memberi identitas yang lebih khusus pada suatu elemen. Pada CSS, ID diawali dengan tanda pagar.
ID di HTML<h1 id="nama-toko">
NusaTech Store
</h1>
ID Selector di CSS
#nama-toko {
color: #1d4ed8;
}
Specificity Secara Sederhana
Jika beberapa aturan CSS mengenai elemen yang sama, browser perlu menentukan aturan mana yang lebih kuat. Untuk tahap awal, ingat pola sederhana berikut:
Gambaran SpecificityElement Selector
↓
Class Selector
↓
ID Selector
Semakin khusus selector,
biasanya semakin kuat pengaruhnya.
Coding 2 — Mengatur Informasi Produk dengan Class dan ID
HTML<section class="produk">
<h1 id="judul-katalog">
Katalog NusaTech Store
</h1>
<h2 class="nama-produk">
Keyboard Mechanical
</h2>
<p class="harga">
Rp350.000
</p>
<p class="stok">
Stok: 10
</p>
<p class="deskripsi">
Keyboard untuk kebutuhan belajar,
bekerja, dan aktivitas digital.
</p>
</section>
CSS
#judul-katalog {
color: #1d4ed8;
}
.nama-produk {
color: #111827;
}
.harga {
color: #047857;
font-weight: bold;
}
.stok {
color: #b45309;
}
.deskripsi {
color: #4b5563;
}
Kebiasaan BaikGunakan class untuk style yang mungkin dipakai berulang pada banyak produk. Gunakan ID jika elemennya memang memiliki identitas khusus.
Target Coding 2: mahasiswa mampu memilih selector yang sesuai dan memahami perbedaan element, class, dan ID.
Materi 3 — Mengatur Warna dan Typography
Setelah selector dipahami, kita mulai mengatur tampilan teks. Dua hal yang paling cepat terlihat adalah warna dan typography.
Mengatur Warna
CSS mendukung berbagai cara menulis warna, misalnya nama warna, HEX, dan RGB.
Nama Warnah1 {
color: blue;
}
HEX
h1 {
color: #2563eb;
}
RGB
h1 {
color: rgb(37, 99, 235);
}
Background
Warna Backgroundbody {
background-color: #f3f4f6;
}
Typography
Beberapa property typography yang sering digunakan:
- font-family — jenis huruf.
- font-size — ukuran huruf.
- font-weight — ketebalan huruf.
- line-height — jarak antarbaris.
- text-align — perataan teks.
body {
font-family: Arial, sans-serif;
}
h1 {
font-size: 32px;
font-weight: 700;
text-align: center;
}
p {
font-size: 16px;
line-height: 1.7;
}
Coding 3 — Membuat Informasi Produk Lebih Nyaman Dibaca
HTML<section class="produk">
<h1>Katalog Produk</h1>
<p class="subjudul">
Pilihan perlengkapan digital
dari NusaTech Store
</p>
<h2>Keyboard Mechanical</h2>
<p class="harga">
Rp350.000
</p>
<p>
Keyboard yang nyaman digunakan
untuk belajar dan bekerja.
</p>
</section>
CSS
body {
font-family: Arial, sans-serif;
background-color: #f3f4f6;
color: #1f2937;
}
.produk h1 {
color: #1d4ed8;
font-size: 32px;
text-align: center;
}
.subjudul {
color: #6b7280;
font-size: 18px;
text-align: center;
}
.produk h2 {
font-size: 24px;
}
.harga {
color: #047857;
font-size: 20px;
font-weight: bold;
}
.produk p {
line-height: 1.7;
}
Prinsip Desain DasarJangan menggunakan terlalu banyak warna dan jenis font dalam satu halaman. Tampilan yang sederhana dan konsisten biasanya lebih nyaman dibaca.
Target Coding 3: mahasiswa mampu mengatur warna dan typography agar informasi produk lebih mudah dibaca.
Materi 4 — Memahami CSS Box Model
Hampir setiap elemen HTML dapat dibayangkan sebagai sebuah kotak. CSS menyebut konsep ini sebagai Box Model.
Ilustrasi Box ModelMargin
|
+-- Border
|
+-- Padding
|
+-- Content
- Content — isi elemen.
- Padding — ruang antara content dan border.
- Border — garis yang mengelilingi padding dan content.
- Margin — jarak antara elemen dengan elemen lain.
width dan box-sizing
Property box-sizing: border-box; membantu kita mengontrol ukuran elemen karena padding dan border ikut dihitung ke dalam width.
Menggunakan border-box* {
box-sizing: border-box;
}
border-radius dan box-shadow
border-radius membuat sudut kotak lebih halus, sedangkan box-shadow memberikan bayangan pada elemen.
Coding 4 — Membuat Product Card Sederhana
HTML Product Card<article class="product-card">
<h2>Keyboard Mechanical</h2>
<p class="harga">
Rp350.000
</p>
<p>
Keyboard nyaman untuk belajar,
bekerja, dan mengetik.
</p>
<p>
Stok: 10
</p>
</article>
CSS Product Card
* {
box-sizing: border-box;
}
body {
font-family: Arial, sans-serif;
background-color: #f3f4f6;
}
.product-card {
width: 320px;
margin: 40px auto;
padding: 24px;
background-color: white;
border: 1px solid #d1d5db;
border-radius: 12px;
box-shadow: 0 4px 12px rgba(0, 0, 0, 0.10);
}
.product-card h2 {
margin-top: 0;
color: #1d4ed8;
}
.harga {
color: #047857;
font-size: 20px;
font-weight: bold;
}
Target Coding 4: mahasiswa memahami hubungan content, padding, border, dan margin serta mampu membuat Product Card.
Materi 5 — Mini Project: Katalog Produk Sederhana
Sekarang kita menggabungkan external CSS, selector, class, ID, warna, typography, dan Box Model menjadi sebuah katalog produk sederhana.
Pada Pertemuan 3 kita belum menggunakan Flexbox. Karena itu Product Card masih tersusun secara normal dari atas ke bawah. Pengaturan layout modern akan dipelajari pada Pertemuan 5.
Struktur Project
Struktur Folderkatalog-produk/
|
+-- index.html
|
+-- css/
| |
| +-- style.css
|
+-- images/
|
+-- keyboard.jpg
+-- mouse.jpg
+-- headset.jpg
Coding 5 — Katalog Produk dengan Product Card
index.html<!DOCTYPE html>
<html lang="id">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Katalog NusaTech Store</title>
<link rel="stylesheet" href="css/style.css">
</head>
<body>
<main class="container">
<header class="page-header">
<p class="label">
NusaTech Store
</p>
<h1 id="judul-katalog">
Katalog Produk
</h1>
<p class="subjudul">
Pilihan perlengkapan digital
untuk belajar dan bekerja.
</p>
</header>
<section class="katalog">
<article class="product-card">
<img
class="product-image"
src="images/keyboard.jpg"
alt="Keyboard Mechanical"
>
<h2>Keyboard Mechanical</h2>
<p class="harga">
Rp350.000
</p>
<p class="stok">
Stok: 10
</p>
<p class="deskripsi">
Keyboard untuk kebutuhan belajar,
bekerja, dan aktivitas digital.
</p>
</article>
<article class="product-card">
<img
class="product-image"
src="images/mouse.jpg"
alt="Mouse Wireless"
>
<h2>Mouse Wireless</h2>
<p class="harga">
Rp150.000
</p>
<p class="stok">
Stok: 15
</p>
<p class="deskripsi">
Mouse praktis untuk penggunaan
sehari-hari.
</p>
</article>
<article class="product-card">
<img
class="product-image"
src="images/headset.jpg"
alt="Headset Gaming"
>
<h2>Headset Gaming</h2>
<p class="harga">
Rp275.000
</p>
<p class="stok">
Stok: 8
</p>
<p class="deskripsi">
Headset untuk belajar,
meeting, dan hiburan.
</p>
</article>
</section>
</main>
</body>
</html>
css/style.css
* {
box-sizing: border-box;
}
body {
margin: 0;
font-family: Arial, sans-serif;
background-color: #f3f4f6;
color: #1f2937;
}
.container {
width: 90%;
max-width: 700px;
margin: 0 auto;
padding: 40px 0;
}
.page-header {
margin-bottom: 32px;
text-align: center;
}
.label {
color: #2563eb;
font-size: 14px;
font-weight: bold;
}
#judul-katalog {
margin-top: 8px;
margin-bottom: 10px;
font-size: 34px;
}
.subjudul {
color: #6b7280;
line-height: 1.7;
}
.product-card {
width: 100%;
margin-bottom: 24px;
padding: 24px;
background-color: white;
border: 1px solid #d1d5db;
border-radius: 14px;
box-shadow: 0 5px 15px rgba(0, 0, 0, 0.08);
}
.product-image {
width: 100%;
max-width: 280px;
border-radius: 10px;
}
.product-card h2 {
margin-bottom: 8px;
color: #111827;
}
.harga {
margin-top: 0;
color: #047857;
font-size: 20px;
font-weight: bold;
}
.stok {
color: #b45309;
font-weight: bold;
}
.deskripsi {
line-height: 1.7;
}
Belajar CSS dengan EksperimenUbah nilai padding, border-radius, font-size, atau warna. Refresh browser dan amati perbedaannya. CSS lebih mudah dipahami melalui eksperimen.
Target Coding 5: mahasiswa mampu membuat katalog sederhana dengan Product Card menggunakan HTML dan external CSS.
Debugging Challenge
Perhatikan source code berikut. Temukan dan perbaiki kesalahannya.
HTML yang Harus Diperiksa<!DOCTYPE html>
<html lang="id">
<head>
<meta charset="UTF-8">
<title>Product Card</title>
<link
rel="stylesheet"
href="style.css"
>
</head>
<body>
<article class="product-card">
<h2>Keyboard Mechanical</h2>
<p class="harga">
Rp350.000
</p>
</article>
</body>
</html>
CSS yang Harus Diperiksa
.product {
width: 320px;
padding 24px;
background-color: white;
border-radius: 12px;
}
.harga {
color: #047857
}
Tugas mahasiswa:
- Periksa lokasi file CSS pada href.
- Periksa apakah nama class HTML dan CSS sama.
- Perbaiki penulisan property padding.
- Perbaiki declaration CSS yang belum memiliki titik koma.
Challenge Pertemuan 3
Buat katalog produk untuk ide usaha masing-masing. Produk boleh berupa barang fisik, makanan, jasa, atau produk digital.
Minimal memiliki:
- External CSS.
- Element selector.
- Minimal dua class selector.
- Minimal satu ID selector.
- Background dan warna teks.
- Typography yang konsisten.
- Minimal tiga Product Card.
- Padding, border, margin, border-radius, dan box-shadow.
- Gambar produk menggunakan attribute alt.
Evaluasi Pemahaman
- Apa fungsi CSS?
- Apa perbedaan HTML dan CSS?
- Apa perbedaan inline, internal, dan external CSS?
- Mengapa external CSS cocok digunakan pada project?
- Apa fungsi elemen link pada head?
- Apa yang dimaksud selector?
- Apa yang dimaksud property dan value?
- Apa perbedaan element selector, class, dan ID?
- Bagaimana cara menulis class selector?
- Bagaimana cara menulis ID selector?
- Apa yang dimaksud specificity secara sederhana?
- Apa fungsi background-color?
- Apa fungsi font-family?
- Apa fungsi line-height?
- Apa yang dimaksud CSS Box Model?
- Apa perbedaan padding dan margin?
- Apa fungsi border?
- Apa fungsi box-sizing: border-box?
- Apa fungsi border-radius?
- Apa fungsi box-shadow?
Checklist Kompetensi Pertemuan 3
- Menghubungkan HTML dengan external CSS.
- Memahami selector, property, dan value.
- Menggunakan element, class, dan ID selector.
- Mengatur warna dan background.
- Mengatur typography.
- Memahami Box Model.
- Menggunakan padding dan margin.
- Menggunakan border.
- Menggunakan box-sizing.
- Menggunakan border-radius dan box-shadow.
- Membuat Product Card.
- Membuat katalog produk sederhana.
Rangkuman Pertemuan 3
Di Pertemuan 3 kita mulai memisahkan struktur dan tampilan. HTML tetap bertugas menyimpan konten, sedangkan CSS mengatur bagaimana konten ditampilkan.
- Coding 1: menghubungkan HTML dengan external CSS.
- Coding 2: menggunakan element, class, dan ID selector.
- Coding 3: mengatur warna dan typography produk.
- Coding 4: memahami Box Model dan membuat Product Card.
- Coding 5: membuat Katalog Produk Sederhana.
Pertemuan 1
Profil Usaha
|
v
Pertemuan 2
Katalog + Form Data Produk
|
v
Pertemuan 3
CSS + Product Card
|
v
Pertemuan 4
JavaScript + Kalkulator Penjualan
|
v
Pertemuan 5
Responsive Store
|
v
PHP + MySQL + CRUD
|
v
Laravel
Menuju Pertemuan 4
Website kita sudah memiliki struktur dan tampilan. Namun halaman tersebut belum dapat melakukan perhitungan, mengambil keputusan, atau bereaksi terhadap input pengguna.
Pada pertemuan berikutnya kita mulai menggunakan JavaScript untuk memberi logika pada halaman dan membuat kalkulator transaksi penjualan sederhana.