Cara Membuat Website dengan HTML dan CSS Responsive
Website pertama banyak orang dibuat menggunakan WordPress atau website builder. Tinggal memilih template, mengatur elemen, lalu website bisa langsung digunakan.
Namun, ketika ingin mengubah sesuatu di luar kemampuan template, misalnya memindahkan elemen secara lebih fleksibel, membuat layout berbeda, atau mengatur desain hingga detail terkecil, kamu bisa mulai menemukan keterbatasannya.
Belajar cara membuat website dengan HTML dan CSS memberikan kontrol yang lebih besar karena kamu bekerja langsung dengan struktur dan tampilan halaman.
Dalam tutorial ini, kamu akan membuat satu landing page dari nol yang terdiri dari navbar, hero section, cards fitur, CTA, dan footer. Website juga dibuat responsive agar tetap nyaman dibuka melalui HP, tablet, maupun desktop.
Kita hanya membutuhkan dua file utama:
- index.html
- style.css
Tidak ada framework dan tidak ada JavaScript untuk fungsi utamanya.
Apa yang Akan Kamu Buat?
Sebelum menulis kode, tentukan terlebih dahulu bentuk halaman yang akan dibuat.
Output akhir tutorial ini adalah landing page satu halaman dengan lima bagian utama:
- Navbar di bagian atas
- Hero section dengan teks dan gambar
- Deretan cards untuk fitur
- CTA section
- Footer
Ketika dibuka melalui layar kecil, struktur tersebut akan menyesuaikan secara otomatis. Hero yang sebelumnya terdiri dari dua kolom akan tersusun vertikal, sedangkan tiga card yang berjajar di desktop akan berubah menjadi satu card per baris di mobile.
Tidak ada JavaScript yang dibutuhkan. Interaksi sederhana seperti hover tombol dan transisi warna dapat ditangani langsung menggunakan CSS.
Beberapa kemampuan yang akan dipraktikkan dalam tutorial ini antara lain:
- Struktur HTML semantik
- Layout menggunakan Flexbox
- Susunan card menggunakan CSS Grid
- Media query untuk tampilan responsive
Tools yang Dibutuhkan
Untuk mengikuti tutorial ini, kamu cukup menyiapkan:
- VS Code untuk menulis kode
- Chrome atau Firefox untuk melihat hasilnya
Kamu juga bisa memasang ekstensi Live Server di VS Code. Dengan ekstensi ini, perubahan pada file dapat langsung terlihat di browser setelah disimpan.
Tanpa Live Server pun tidak masalah. File HTML tetap dapat dibuka langsung melalui browser.
Mengenal HTML dan CSS
HTML dan CSS memiliki fungsi berbeda, tetapi hampir selalu digunakan bersama ketika membuat halaman website.
HTML menentukan struktur halaman, misalnya mana yang menjadi heading, paragraf, link, gambar, navigasi, atau footer.
CSS bertugas mengatur tampilannya, mulai dari warna, ukuran font, spacing, hingga posisi setiap elemen di layar.
Tanpa CSS, halaman HTML akan terlihat seperti dokumen sederhana. Sebaliknya, CSS membutuhkan struktur HTML sebagai elemen yang akan diberi style.
Sebelum mulai membuat website, kamu cukup memahami konsep HTML dan CSS yang memang akan digunakan dalam project ini.
HTML Singkat: Elemen, Tag, dan Atribut
Konten pada halaman HTML ditulis menggunakan elemen.
Sebagai contoh:
<p>Ini adalah sebuah paragraf.</p>
Tag <p> membuka elemen paragraf, sedangkan </p> menutupnya.
Beberapa tag yang akan sering digunakan adalah:
- <h1> sampai <h6> untuk heading
- <p> untuk paragraf
- <a href=”…”> untuk link
- <img src=”…”> untuk gambar
- <section> untuk bagian halaman
- <header> untuk bagian header
- <footer> untuk footer
HTML merupakan markup language yang mendeskripsikan struktur dan konten halaman, bukan bahasa pemrograman yang menjalankan logika seperti kondisi atau perhitungan.
Jika ingin memahami perbedaannya lebih jauh, kamu bisa membaca artikel programming adalah.
Untuk mempelajari elemen, atribut, heading, paragraf, link, dan struktur HTML secara lebih lengkap, lanjutkan dengan panduan belajar HTML.
CSS Singkat: Selector, Class, dan Menghubungkan CSS
CSS bekerja dengan memilih elemen HTML, kemudian memberikan aturan tampilan pada elemen tersebut. Mekanisme pemilihannya disebut selector.
Tiga selector dasar yang perlu kamu kenal adalah:
Tag selector
|
1 2 3 |
p { color: red; } |
Aturan tersebut berlaku untuk semua elemen <p>.
Class selector
|
1 2 3 |
.tombol { background: blue; } |
Aturan berlaku untuk elemen dengan class=”tombol”.
ID selector
|
1 2 3 |
#header { height: 80px; } |
ID digunakan untuk elemen tertentu yang memiliki identifier unik.
Dalam tutorial ini, kita akan lebih banyak menggunakan class agar styling lebih fleksibel dan dapat digunakan ulang.
File CSS kemudian dihubungkan ke HTML melalui bagian <head>:
<link rel="stylesheet" href="style.css">
Jika ingin mempelajari konsep CSS lebih lanjut, baca juga artikel CSS adalah.
Siapkan Struktur Folder Project
Struktur folder yang rapi membuat file lebih mudah dikelola dan mengurangi kemungkinan salah menulis path CSS atau gambar.
Buat struktur seperti berikut:
|
1 2 3 4 5 |
project-landing/ ├── index.html ├── style.css └── images/ └── hero.png |
index.html menjadi dokumen utama halaman. Nama tersebut juga umum digunakan sebagai default document oleh banyak web server, meskipun konfigurasi server dapat berbeda.
style.css menyimpan semua aturan tampilan, sedangkan folder images/ digunakan untuk menyimpan aset gambar.
Untuk penamaan class, gunakan format yang konsisten. Salah satu konvensi yang umum digunakan dalam CSS adalah kebab-case:
.hero-section
Daripada:
.HeroSection
.heroSection
Tujuannya sederhana: kode menjadi lebih konsisten dan mudah dibaca.
Buat Boilerplate HTML dan Meta Viewport
Buka index.html, kemudian tambahkan struktur dasar berikut:
|
1 2 3 4 5 6 7 8 9 10 11 |
<!DOCTYPE html> <html lang="id"> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <link rel="stylesheet" href="style.css"> <title>Landing Page</title> </head> <body> </body> </html> |
Perhatikan bagian berikut:
<meta name="viewport" content="width=device-width, initial-scale=1.0">
Meta viewport membantu browser mobile menyesuaikan viewport dengan lebar perangkat sehingga layout responsive dapat ditampilkan sebagaimana mestinya.
Sementara itu:
<html lang="id">
memberikan informasi bahwa bahasa utama halaman adalah Bahasa Indonesia. Informasi ini juga membantu browser dan teknologi asistif seperti screen reader.
Struktur Layout Website yang Akan Digunakan
Landing page umumnya tidak terdiri dari satu blok panjang. Halaman dibagi menjadi beberapa section yang memiliki fungsi berbeda.
Dalam project ini, kita menggunakan lima bagian:
- Header/Navbar — navigasi utama
- Hero — pesan utama yang pertama dilihat pengunjung
- Features — cards yang menjelaskan fitur atau informasi utama
- CTA Section — ajakan melakukan tindakan
- Footer — bagian penutup halaman
Struktur tersebut bukan aturan wajib, tetapi cukup umum digunakan pada landing page produk, portfolio, maupun website jasa.
Konsep Container dan Spacing
Salah satu class yang akan sering digunakan adalah .container.
Tanpa container, konten dapat melebar sampai ke sisi layar sehingga kurang nyaman dibaca pada monitor besar.
Gunakan:
|
1 2 3 4 5 |
.container { max-width: 1100px; margin: 0 auto; padding: 0 24px; } |
max-width membatasi lebar konten.
margin: 0 auto membuat container berada di tengah.
Sedangkan:
padding: 0 24px;
memberikan ruang di sisi kiri dan kanan agar konten tidak menempel ke tepi layar.
Untuk jarak vertikal antar-section, kita juga dapat membuat utility sederhana:
|
1 2 3 |
.section { padding: 64px 0; } |
Nilai 64px bukan angka wajib. Kamu dapat menggunakan 56px, 72px, atau nilai lain sesuai desain. Hal yang lebih penting adalah menjaga konsistensinya.
Mulai Coding HTML untuk Landing Page
Pada tahap ini, fokus kita masih pada struktur HTML.
Jika ingin melihat pendekatan lain untuk membuat halaman statis tanpa banyak interaksi, kamu juga bisa membaca artikel buat website tanpa JavaScript.
Hindari menggunakan <div> untuk setiap bagian halaman jika tersedia elemen HTML semantik yang lebih sesuai.
Tag seperti:
<header>
<nav>
<section>
<footer>
membantu struktur dokumen menjadi lebih jelas bagi developer, browser, mesin pencari, dan teknologi asistif.
Tambahkan:
|
1 2 3 4 5 6 7 8 9 10 11 12 |
<header class="header"> <div class="container"> <nav class="navbar"> <a href="#" class="logo">NamaLogo</a> <ul class="nav-menu"> <li><a href="#features">Fitur</a></li> <li><a href="#cta">Mulai</a></li> <li><a href="#footer">Kontak</a></li> </ul> </nav> </div> </header> |
<header> menandai area header halaman, sedangkan <nav> menunjukkan bahwa bagian tersebut berisi navigasi.
Menu menggunakan <ul> dan <li> karena secara semantik memang merupakan daftar navigasi.
Styling akan kita tambahkan melalui CSS pada tahap berikutnya.
Hero Section
Sekarang buat hero:
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 |
<section class="hero section" id="hero"> <div class="container"> <div class="hero-inner"> <div class="hero-text"> <h1 class="hero-title"> Judul Utama yang Langsung ke Poin </h1> <p class="hero-desc"> Deskripsi singkat yang menjelaskan apa yang ditawarkan melalui halaman ini. </p> <a href="#cta" class="btn btn-primary"> Mulai Sekarang </a> </div> <div class="hero-image"> <img src="images/hero.png" alt="Ilustrasi hero"> </div> </div> </div> </section> |
Gunakan <h1> sebagai heading utama halaman. Untuk landing page sederhana seperti project ini, cukup gunakan satu heading utama yang mewakili topik halaman, lalu gunakan <h2> dan <h3> untuk hierarki berikutnya.
Perhatikan juga atribut alt pada gambar:
alt="Ilustrasi hero"
Isi alt dengan deskripsi yang sesuai fungsi atau isi gambar. Hindari nilai generik seperti gambar1.
Di dalam .hero-inner terdapat dua bagian:
- .hero-text
- .hero-image
Keduanya nanti akan dibuat menjadi layout dua kolom menggunakan Flexbox.
Features Section
Selanjutnya buat tiga card:
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 |
<section class="features section" id="features"> <div class="container"> <h2 class="section-title">Apa yang Kamu Dapat</h2> <div class="features-grid"> <div class="card"> <div class="card-icon">🛠️</div> <h3 class="card-title">Judul Fitur Satu</h3> <p class="card-desc"> Deskripsi singkat fitur ini. </p> </div> <div class="card"> <div class="card-icon">📐</div> <h3 class="card-title">Judul Fitur Dua</h3> <p class="card-desc"> Deskripsi singkat fitur ini. </p> </div> <div class="card"> <div class="card-icon">📱</div> <h3 class="card-title">Judul Fitur Tiga</h3> <p class="card-desc"> Deskripsi singkat fitur ini. </p> </div> </div> </div> </section> |
.features-grid akan menjadi grid container, sedangkan setiap .card menjadi grid item.
CSS Grid membuat susunan card lebih mudah diatur, terutama ketika jumlah kolom perlu berubah berdasarkan ukuran layar.
CTA cukup terdiri dari satu pesan utama, deskripsi pendek, dan tombol.
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 |
<section class="cta section" id="cta"> <div class="container"> <h2 class="cta-title"> Siap Buat Website Pertamamu? </h2> <p class="cta-desc"> Mulai dari file kosong hingga menjadi halaman yang bisa dibuka melalui browser. </p> <a href="#footer" class="btn btn-primary"> Lihat Langkah Berikutnya </a> </div> </section> Footer dapat dibuat sederhana: <footer class="footer" id="footer"> <div class="container"> <p class="footer-text"> © 2026 NamaSitusmu. All rights reserved. </p> </div> </footer> |
Mulai Styling dengan CSS Dasar
Jika index.html dibuka sekarang, tampilannya masih sangat sederhana. Itu normal karena HTML berfungsi mengatur struktur, bukan desain.
Sekarang buka style.css.
Sebelum mengatur desain setiap section, kita akan menyiapkan reset sederhana dan typography dasar.
CSS Reset dan Typography
Tambahkan:
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 |
*, *::before, *::after { box-sizing: border-box; margin: 0; padding: 0; } body { font-family: Arial, sans-serif; font-size: 16px; line-height: 1.6; color: #1a1a1a; background-color: #ffffff; } img { max-width: 100%; height: auto; display: block; } a { text-decoration: none; color: inherit; } |
Salah satu aturan penting di sini adalah:
box-sizing: border-box;
Dengan border-box, padding dan border dihitung sebagai bagian dari ukuran elemen.
Misalnya:
|
1 2 3 4 |
.card { width: 300px; padding: 24px; } |
Lebar elemen tetap 300px karena padding sudah dihitung di dalam ukuran tersebut.
Aturan:
|
1 2 3 4 |
img { max-width: 100%; height: auto; } |
juga membantu menjaga gambar agar tidak melebihi lebar container.
Container, Section, dan Button
Tambahkan:
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 |
.container { max-width: 1100px; margin: 0 auto; padding: 0 24px; } .section { padding: 64px 0; } .btn { display: inline-block; padding: 12px 28px; border-radius: 6px; font-size: 16px; cursor: pointer; transition: opacity 0.2s ease; } .btn-primary { background-color: #2563eb; color: #ffffff; } .btn-primary:hover { opacity: 0.85; } |
Class .btn menyimpan aturan dasar tombol yang dapat digunakan ulang.
Sementara .btn-primary khusus mengatur variasi visual tombol utama.
Dengan pendekatan tersebut, jika suatu saat membutuhkan tombol secondary, kamu tidak perlu menulis ulang semua padding, border-radius, dan ukuran font.
Flexbox cocok digunakan ketika elemen perlu disusun dalam satu arah utama, baik horizontal maupun vertikal.
Dalam project ini, Flexbox digunakan untuk:
- Navbar
- Hero section
Tambahkan:
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 |
.navbar { display: flex; justify-content: space-between; align-items: center; padding: 20px 0; } .nav-menu { display: flex; gap: 32px; list-style: none; } .nav-menu a { font-size: 15px; color: #1a1a1a; font-weight: 500; } .nav-menu a:hover { color: #2563eb; } |
justify-content: space-between membuat logo berada di sisi kiri dan menu di sisi kanan.
align-items: center menjaga keduanya tetap sejajar secara vertikal.
Sementara gap memberikan jarak antar-item menu tanpa perlu menambahkan margin secara manual pada setiap <li>.
Hero Dua Kolom dengan Flexbox
Tambahkan:
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 |
.hero { background-color: #f8fafc; } .hero-inner { display: flex; align-items: center; gap: 48px; } .hero-text { flex: 1; } .hero-image { flex: 1; } .hero-title { font-size: 42px; font-weight: 700; line-height: 1.2; margin-bottom: 16px; } .hero-desc { font-size: 18px; color: #4b5563; margin-bottom: 32px; } |
Karena .hero-text dan .hero-image sama-sama menggunakan:
flex: 1;
ruang yang tersedia akan dibagi secara proporsional di antara keduanya.
Kalau ingin bagian teks lebih lebar, kamu dapat mengubahnya menjadi:
|
1 2 3 |
.hero-text { flex: 1.5; } |
Mengatur Features dengan CSS Grid
Flexbox cocok untuk navbar dan hero. Untuk deretan card yang perlu tersusun sebagai baris dan kolom, CSS Grid lebih praktis.
Tambahkan:
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 |
.features { background-color: #ffffff; } .section-title { font-size: 32px; font-weight: 700; text-align: center; margin-bottom: 48px; } .features-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 32px; } .card { background-color: #f8fafc; border-radius: 10px; padding: 32px 24px; display: flex; flex-direction: column; gap: 12px; } .card-icon { font-size: 32px; } .card-title { font-size: 18px; font-weight: 600; } .card-desc { font-size: 15px; color: #4b5563; line-height: 1.6; } |
Bagian:
grid-template-columns: repeat(3, 1fr);
membuat tiga kolom dengan lebar yang sama.
Grid secara default juga membantu item dalam satu row memiliki tinggi area yang konsisten, sedangkan Flexbox di dalam .card digunakan untuk mengatur kontennya secara vertikal.
Alternatif Grid Auto-Responsive
CSS Grid juga memiliki pendekatan yang lebih otomatis:
|
1 2 3 4 5 6 |
.features-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(220px, 1fr)); gap: 32px; } |
auto-fit dan minmax() membuat browser menentukan jumlah kolom berdasarkan ruang yang tersedia.
Pendekatan ini praktis, tetapi untuk tutorial pemula kita akan menggunakan breakpoint secara eksplisit agar perubahan layout lebih mudah dipahami.
Membuat Website Responsive dengan Media Query
Sekarang struktur utama landing page sudah terbentuk. Tahap berikutnya adalah membuat layout nyaman digunakan pada ukuran layar yang berbeda.
Pendekatan yang digunakan adalah mobile-first.
Artinya, CSS dasar dibuat untuk layar kecil terlebih dahulu. Setelah itu, media query digunakan untuk memperluas layout pada tablet dan desktop.
Kalau ingin melihat penerapan konsep yang sama pada contoh project lain, kamu juga bisa membaca panduan cara membuat website responsive. Di sana kamu dapat melihat bagaimana HTML dan CSS disusun agar tampilan website tetap nyaman digunakan di berbagai ukuran perangkat.
Dalam project ini, kita menggunakan dua breakpoint utama:
- 768px untuk tablet
- 1024px untuk desktop
Dua breakpoint tersebut sudah cukup untuk memahami konsep dasarnya.
Mengubah Hero Menjadi Satu Kolom di Mobile
Buat CSS default:
|
1 2 3 4 5 6 7 8 |
.hero-inner { display: flex; flex-direction: column; gap: 32px; } .hero-title { font-size: 28px; } |
Kemudian tambahkan:
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 |
@media (min-width: 768px) { .hero-inner { flex-direction: row; align-items: center; gap: 48px; } .hero-title { font-size: 36px; } } @media (min-width: 1024px) { .hero-title { font-size: 42px; } } |
Pada layar kecil:
flex-direction: column;
membuat teks dan gambar tersusun vertikal.
Ketika layar mencapai 768px, nilai tersebut berubah menjadi:
flex-direction: row;
sehingga hero kembali menjadi dua kolom.
Membuat Features 1, 2, lalu 3 Kolom
Gunakan:
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 |
.features-grid { display: grid; grid-template-columns: 1fr; gap: 24px; } @media (min-width: 768px) { .features-grid { grid-template-columns: repeat(2, 1fr); gap: 28px; } } @media (min-width: 1024px) { .features-grid { grid-template-columns: repeat(3, 1fr); gap: 32px; } } |
Hasilnya:
- Mobile → 1 kolom
- Tablet → 2 kolom
- Desktop → 3 kolom
Dengan pola tersebut, kamu tidak perlu membuat struktur HTML berbeda untuk setiap perangkat.
Responsive Typography
Ukuran heading juga dapat disesuaikan berdasarkan breakpoint:
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 |
h1 { font-size: 28px; } @media (min-width: 768px) { h1 { font-size: 36px; } } @media (min-width: 1024px) { h1 { font-size: 42px; } } Alternatif yang lebih ringkas adalah menggunakan clamp(): h1 { font-size: clamp(28px, 5vw, 42px); } |
Artinya:
- ukuran minimum 28px
- ukuran maksimum 42px
- di antara keduanya ukuran mengikuti viewport
Untuk pemula, breakpoint eksplisit biasanya lebih mudah dipahami terlebih dahulu.
Membuat Gambar Ikut Responsive
Responsive design tidak hanya berkaitan dengan jumlah kolom. Gambar juga perlu menyesuaikan ukuran container.
Karena itu, pastikan aturan berikut tersedia:
|
1 2 3 4 5 |
img { max-width: 100%; height: auto; display: block; } |
max-width: 100% mencegah gambar menjadi lebih lebar daripada parent container.
height: auto menjaga rasio gambar.
Sedangkan display: block menghilangkan whitespace kecil yang dapat muncul karena perilaku default inline pada elemen gambar.
Troubleshooting Scroll Horizontal di Mobile
Salah satu masalah paling umum pada responsive website adalah munculnya scroll horizontal.
Beberapa penyebabnya antara lain:
- Elemen menggunakan width fixed yang terlalu besar
- Padding atau margin mendorong elemen keluar container
- Gambar tidak menggunakan max-width: 100%
- Elemen menggunakan positioning atau transform yang melewati viewport
Untuk mengeceknya, buka DevTools Chrome dan aktifkan Device Toolbar.
Coba tampilan dengan lebar sekitar 360px.
Kamu juga dapat menambahkan debugging sementara:
|
1 2 3 |
* { outline: 1px solid red; } |
Dengan begitu, batas setiap elemen akan terlihat.
Jika sudah selesai debugging, hapus aturan tersebut sebelum website dipublikasikan.
Jika jumlah menu cukup banyak, navbar horizontal dapat menjadi terlalu sempit di HP.
Biasanya hamburger menu dibuat dengan bantuan JavaScript. Namun untuk project sederhana, kamu juga bisa memahami konsep toggle menggunakan checkbox dan CSS.
Membuat Checkbox Toggle
Tambahkan sebelum <nav>:
|
1 2 3 4 5 6 7 8 9 10 |
<input type="checkbox" id="nav-toggle" class="nav-toggle" > <label for="nav-toggle" class="nav-hamburger"> <span></span> <span></span> <span></span> </label> |
Kemudian CSS:
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 |
.nav-toggle { display: none; } .nav-hamburger { display: none; flex-direction: column; gap: 5px; cursor: pointer; } .nav-hamburger span { display: block; width: 24px; height: 2px; background-color: #1a1a1a; } @media (max-width: 767px) { .nav-hamburger { display: flex; } .nav-menu { display: none; flex-direction: column; gap: 16px; padding: 24px 0; } .nav-toggle:checked ~ nav .nav-menu { display: flex; } } |
Selector:
.nav-toggle:checked ~ nav .nav-menu
memeriksa apakah checkbox berada dalam kondisi checked. Jika iya, .nav-menu ditampilkan.
Teknik ini cukup untuk latihan dan landing page sederhana.
Namun, untuk website production dengan kebutuhan interaksi dan aksesibilitas yang lebih kompleks, menu berbasis JavaScript biasanya memberikan kontrol yang lebih baik.
File Final dan Cara Menjalankan Website
Setelah seluruh HTML dan CSS digabungkan, project akan memiliki struktur berikut:
|
1 2 3 4 5 |
project-landing/ ├── index.html ├── style.css └── images/ └── hero.png |
Kamu juga dapat menggunakan file template berikut:
Cara Menjalankan
Ada dua cara sederhana.
Cara pertama: buka langsung melalui browser.
Klik kanan index.html, pilih Open with, kemudian pilih Chrome atau Firefox.
Untuk landing page HTML dan CSS seperti project ini, kamu tidak membutuhkan backend untuk sekadar melihat hasilnya secara lokal.
Cara kedua: gunakan Live Server.
Jika sudah memasang Live Server di VS Code:
- Klik kanan index.html
- Pilih Open with Live Server
- Browser akan membuka halaman project
- Simpan perubahan dan halaman akan diperbarui
Mau Mengembangkan Website Menjadi Lebih Dinamis?
Sampai tahap ini, website yang kita buat masih berupa website statis.
Untuk landing page, portfolio, company profile sederhana, atau halaman informasi, struktur tersebut sudah cukup.
Namun, kebutuhan website dapat berkembang. Misalnya, kamu ingin memproses form di server, menggunakan template yang dapat dipakai ulang, mengambil data dari database, atau mulai mempelajari backend.
Jika sudah sampai tahap tersebut, kamu bisa melanjutkan ke panduan cara membuat website dengan PHP.
Dengan begitu, alur belajarnya menjadi lebih jelas:
HTML → CSS → Responsive Design → PHP/Backend
Checklist Sebelum Website Dipublish
Website sudah dapat berjalan secara lokal. Sebelum diupload ke hosting, cek tampilannya di beberapa ukuran layar.
Contohnya:
- 360px untuk HP
- 768px untuk tablet
- 1024px atau lebih untuk desktop
Layout
Pastikan:
- Tidak ada scroll horizontal
- Teks tidak terpotong
- Elemen tidak saling menumpuk
- Gambar tampil dengan proporsional
- Tombol mudah diklik di semua ukuran layar
Fungsionalitas
Periksa:
- Semua link navbar menuju section yang sesuai
- Menu mobile dapat dibuka dan ditutup
- Tidak ada gambar broken
- Setiap gambar penting memiliki atribut alt
Kode
Pastikan:
- Class HTML memiliki aturan CSS yang benar jika memang diperlukan
- Tidak ada kode debugging yang tertinggal
- style.css sudah dihubungkan dari <head>
- Path gambar menggunakan lokasi yang benar
Kalau semua sudah berjalan dengan baik, website siap dipindahkan dari komputer lokal ke server.
Website HTML dan CSS tidak membutuhkan resource server yang rumit. Untuk project sederhana seperti landing page, portfolio, atau company profile statis, Web Hosting sudah cukup menjadi tempat menyimpan file agar halaman bisa diakses melalui internet.
Kamu dapat menggunakan Web Hosting DomaiNesia ketika project yang sebelumnya hanya berjalan di komputer sudah siap dipublikasikan menggunakan domain sendiri.
Upload Website ke Hosting
Website statis seperti project ini relatif sederhana untuk dihosting karena tidak membutuhkan konfigurasi backend khusus.
Setelah memiliki hosting, file utama yang perlu diupload adalah:
index.html
style.css
images/
Pastikan struktur folder di server sama dengan struktur project lokal agar path CSS dan gambar tetap berfungsi.
Ketika website sudah tersimpan di web server dan domain diarahkan dengan benar, halaman dapat diakses melalui browser menggunakan HTTP atau HTTPS.
Untuk memahami proses komunikasi tersebut lebih jauh, kamu dapat membaca pembahasan tentang HTTP adalah.
Website Sudah Jadi? Saatnya Online!
Landing page HTML dan CSS kamu sudah siap. Upload project ke hosting agar website bisa diakses melalui domain sendiri dari mana saja.
Website HTML dan CSS Pertamamu Sudah Jadi
Sekarang kamu sudah memiliki satu landing page lengkap dengan struktur HTML semantik, Flexbox, CSS Grid, media query, responsive image, serta navbar sederhana.
Namun, kemampuan membuat website tidak akan berkembang hanya dengan membaca kode.
Coba ubah project yang sudah dibuat.
Ganti warnanya. Ubah typography. Tambahkan section baru. Buat card keempat. Ubah hero menjadi layout yang berbeda. Kemudian buka kembali DevTools ketika ada bagian yang tidak berjalan seperti yang diharapkan.
Dari proses mencoba, menemukan masalah, lalu memperbaikinya, pemahaman HTML dan CSS akan berkembang jauh lebih cepat.
Setelah dasar-dasarnya terasa nyaman, kamu bisa melanjutkan ke JavaScript untuk interaksi halaman, PHP untuk pemrosesan di server, atau framework CSS untuk mempercepat pengembangan tampilan.