Apa itu atribut HTML
Atribut menambahkan informasi ke sebuah elemen. Atribut ditulis di dalam tag pembuka, berupa nama, tanda sama dengan, dan nilai di dalam tanda kutip: name="value". Satu elemen boleh punya atribut sebanyak apa pun, dipisahkan spasi.
href memberi tahu link ke mana harus pergi, src dan alt menjelaskan gambar, type, placeholder dan required mengatur input. Setiap elemen punya kumpulan atributnya sendiri, dan beberapa atribut (atribut global di bawah) berlaku di semua elemen.
Aturan sintaks
<input type="text" name="city" value="Paris" disabled>
- Nama, tanda sama dengan, nilai dalam tanda kutip. Tanda kutip ganda adalah konvensinya; tanda kutip tunggal juga bisa (
title='Say "hi"'adalah cara menaruh tanda kutip ganda di dalam nilai). - Nama tidak peka huruf besar kecil.
CLASSdanclassadalah atribut yang sama. Nilainya peka:class="Box"danclass="box"adalah dua class yang berbeda. - Tanda kutip opsional tanpa spasi, tapi tetap pakai.
class=big boxmemberi elemen classbigdan atribut kedua yang tidak bermakna bernamabox. - Urutan tidak berpengaruh.
<img alt="" src="a.png">sama dengan<img src="a.png" alt="">. - Setiap nama sekali per elemen. Kalau sebuah atribut muncul dua kali, browser menyimpan yang pertama dan diam-diam membuang yang kedua.
Atribut boolean
Beberapa atribut hanya punya dua keadaan: aktif atau tidak. Untuk atribut ini, keberadaannya berarti true, dan nilainya diabaikan. disabled, checked, required, readonly, hidden, multiple, autofocus dan open semuanya bekerja seperti ini.
Tombol ketiga tetap nonaktif walaupun nilainya false, karena browser hanya memeriksa apakah atributnya ada. Untuk mematikan atribut boolean, hapus atributnya. Di JavaScript, button.disabled = false melakukan persis hal itu.
Atribut class
class memberi elemen satu nama atau lebih yang dipakai CSS dan JavaScript untuk menemukannya. Beberapa elemen bisa memakai class yang sama, dan satu elemen bisa punya beberapa class, dipisahkan spasi:
Setiap class tambahan menumpuk aturannya di atas yang sebelumnya. Di CSS, class dipilih dengan titik (.card); di JavaScript, element.classList.add('featured') dan classList.remove mengubahnya. Class adalah cara biasa untuk memberi gaya: sebagian besar CSS-mu akan menargetkan class.
Atribut id
id memberi elemen sebuah nama yang harus unik di satu halaman. Pakai id saat kamu butuh tepat satu elemen: target link, <label for>, atau document.getElementById.
Mengklik label akan memfokuskan input, karena for="email" menunjuk ke id="email". Link menggulir ke #pricing karena fragment di href cocok dengan id-nya.
class | id | |
|---|---|---|
| Berapa banyak elemen yang bisa memakainya | Berapa pun | Satu (unik) |
| Nilai per elemen | Beberapa, dipisahkan spasi | Satu |
| Selector CSS | .name | #name |
| Penggunaan umum | Memberi gaya pada sekelompok elemen | Target link, label, satu elemen tertentu di JavaScript |
Sebuah id tidak boleh mengandung spasi. Awali dengan huruf supaya mudah dipakai di CSS: #2col bukan selector CSS yang valid tanpa escape.
Atribut global
Atribut-atribut ini berlaku di elemen mana pun:
| Atribut | Fungsinya |
|---|---|
id | Nama unik untuk elemen |
class | Daftar nama class, dipisahkan spasi |
style | CSS inline, seperti style="color: red" |
title | Teks tooltip yang muncul saat kursor di atasnya |
lang | Bahasa kontennya, seperti lang="fr" |
dir | Arah teks: ltr, rtl atau auto |
hidden | Menyembunyikan elemen (boolean) |
tabindex | Membuat elemen bisa difokus dengan Tab, atau mengatur urutannya |
contenteditable | Membuat pengguna bisa mengedit teks elemen |
data-* | Data milikmu sendiri, dibaca dengan JavaScript |
Atribut lang punya halamannya sendiri karena berpengaruh pada screen reader, terjemahan, dan mesin pencari.
Atribut data-*
Saat kamu perlu menyimpan nilai sendiri di sebuah elemen, awali namanya dengan data-. Nama apa pun boleh dipakai setelah awalan itu, dan JavaScript membaca nilainya lewat element.dataset, dengan tanda hubung diubah menjadi camelCase:
data-product-id menjadi dataset.productId. Nilainya selalu kembali sebagai string, jadi ubah dengan Number() sebelum melakukan perhitungan. CSS juga bisa memilih berdasarkan atribut ini: [data-price="4.50"].
Kesalahan umum
- Menulis
classdua kali.<div class="a" class="b">hanya menyimpana. Tulis keduanya di satu atribut:class="a b". - Memakai ulang sebuah id. Dua elemen dengan id yang sama merusak
#links, label, dangetElementById, yang hanya mengembalikan elemen pertama. Pakai class untuk apa pun yang berulang. disabled="false"atauchecked="false". Atributnya masih ada, jadi masih aktif. Hapus atributnya.- Nilai tanpa tanda kutip yang mengandung spasi.
alt=My photomengaturaltmenjadiMy. Beri tanda kutip pada setiap nilai. - Membuat atribut sendiri tanpa
data-.<div price="4">adalah HTML yang tidak valid dan bisa bentrok dengan atribut standar di masa depan. Pakaidata-price.
Pertanyaan yang sering diajukan
Apa itu atribut HTML?
Atribut HTML adalah informasi tambahan yang ditulis di dalam tag pembuka sebagai name="value". Atribut mengatur elemennya: href menentukan ke mana link mengarah, src dan alt menjelaskan gambar, class dan id membuat CSS dan JavaScript bisa menemukan elemen itu.
Apa perbedaan class dan id di HTML?
Sebuah id harus unik di satu halaman dan menandai satu elemen, untuk link #fragment, <label for> dan getElementById. Sebuah class bisa dipakai bersama oleh banyak elemen, dan satu elemen bisa punya beberapa class yang dipisahkan spasi. Pakai class untuk styling.
Bagaimana cara menambahkan beberapa class ke satu elemen HTML?
Tulis semuanya di satu atribut class, dipisahkan spasi: <div class="card featured dark">. Menulis class dua kali tidak berhasil: browser hanya menyimpan yang pertama.
Apakah nilai atribut HTML harus pakai tanda kutip?
Tanda kutip boleh dihilangkan kalau nilainya tidak mengandung spasi atau karakter khusus, tapi selalu memakai tanda kutip adalah kebiasaan yang aman. class=big box memberi elemen class big ditambah atribut terpisah bernama box.
Kenapa tombolku masih nonaktif dengan disabled="false"?
disabled adalah atribut boolean: keberadaannya berarti true, apa pun nilainya. Untuk mengaktifkan elemen, hapus atributnya, atau atur button.disabled = false di JavaScript, yang akan menghapusnya.
Bolehkah aku membuat atribut HTML sendiri?
Pakai awalan data-: data-price="12" atau data-user-id="7" valid di elemen mana pun dan bisa dibaca di JavaScript lewat element.dataset. Nama buatan sendiri tanpa awalan itu tidak valid di HTML.