Home » CSS » Pseudo-Class di CSS: Sintak dan Cara Membuatnya

Pseudo-Class di CSS: Sintak dan Cara Membuatnya

by Catur Kurnia Sari
by Catur Kurnia Sari

Pada pembahasan kali ini, kita akan menjelasakan tentang pseudo-class pada CSS. Apa itu pseudo-class dan bagaimana penerapannya pada CSS? Simaklah penjelasan berikut ini.

Apa itu Pseudo-class?

Pseudo-class di CSS digunakan untuk mendefinisikan keadaan khusus dari suatu elemen.

Misalnya, pseudo-class dapat digunakan untuk:

  • Memberikan style sebuah elemen saat pengguna mengarahkan mouse ke atas elemen.
  • Memberikan style berbeda pada link yang telah dikunjungi dan belum dikunjungi.
  • Memberikan style pada sebuah elemen saat elemen memiliki elemen focus

Syntax

Sintaks dari pseudo-class dapat didefinisiskan seperti dibawah ini:

selector:pseudo-class {
  property: value;
}

Anchor Pseudo-class

Sebuah link dapat ditampilkan dengan berbagai cara yang berbeda. Agar lebih mudah dipahami, lihatlah pada contoh dibawah ini.

Contoh :

<!DOCTYPE html>
<html>
<head>
<style>
/* unvisited link */
a:link {
  color: red;
}

/* visited link */
a:visited {
  color: green;
}

/* mouse over link */
a:hover {
  color: hotpink;
}

/* selected link */
a:active {
  color: blue;
}
</style>
</head>
<body>

<p><b><a href="default.asp" target="_blank">Ini sebuah link</a></b></p>
<p><b>catatan:</b> a: hover HARUS muncul setelah a: link dan a: visited dalam definisi CSS agar efektif.</p>
<p><b>Catatan:</b> a: active HARUS muncul setelah a: hover dalam definisi CSS agar efektif.</p>

</body>
</html>

Catatan: a: hover HARUS muncul setelah a: link dan a: visited dalam definisi CSS agar efektif, lalu a: active HARUS muncul setelah a: hover dalam definisi CSS agar efektif. Penamaan pseudo-class tidak peka huruf besar kecil (tidak case sensitive).

Pseudo-classes dan Class CSS

Pseudo-class dapat digabungkan dengan class CSS. Untuk memahami bagaimana cara penggunaan keduanya, lihat pada contoh dibawah ini.

Pada contoh dibawah ini ketika kursor diarahkan pada link , maka link tersebut akan berubah warna:

Contoh ;

<!DOCTYPE html>
<html>
<head>
<style>
a.highlight:hover {
  color: #ff0000;
} 
</style>
</head>
<body>

<p><a class="highlight" href="css_syntax.asp">Sintak CSS</a></p>
<p><a href="default.asp">Tutorial CSS</a></p>

</body>
</html>

Hover pada elemen <div>

Contoh penggunaan pseudo-class: hover pada elemen <div>:

<!DOCTYPE html>
<html>
<head>
<style>
div {
  background-color: green;
  color: white;
  padding: 25px;
  text-align: center;
}

div:hover {
  background-color: blue;
}
</style>
</head>
<body>

<p>Arahkan mouse ke elemen div di bawah ini untuk mengubah warna background:</p>

<div>Arahkan mouse padaku</div>

</body>
</html>

Tooltip Hover

Arahkan kursor pada elemen <div> untuk menampilkan elemen <p> (seperti tooltip).

Contoh :

<!DOCTYPE html>
<html>
<head>
<style>
p {
  display: none;
  background-color: yellow;
  padding: 20px;
}

div:hover p {
  display: block;
}
</style>
</head>
<body>

<div>Arahkan kursor ke saya untuk menunjukkan elemen p
  <p>Tada! Aku disini!</p>
</div>

</body>
</html>

Pseudo-class :first-child pada CSS

Pseudo-class: first-child bekerja dengan cara mencocokkan elemen tertentu yang merupakan turunan pertama dari elemen lain.

Mencocokkan elemen <p> pertama

Dalam contoh berikut, selector akan mencocokkan setiap elemen <p> yang merupakan turunan pertama dari setiap elemen :

Contoh :

<!DOCTYPE html>
<html>
<head>
<style>
p:first-child {
  color: blue;
} 
</style>
</head>
<body>

<p>Ini adalah teks.</p>
<p>Ini adalah teks</p>
<p><b>Catatan:</b> Agar first-child bekerja di IE8 dan sebelumnya, DOCTYPE harus dideklarasikan.</p>

</body>
</html>

Cocokkan elemen <i> pertama pada semua elemen <p>

Dalam contoh berikut, selector akan mencocokan elemen <i> pertama dengan semua elemen <p>:

<!DOCTYPE html>
<html>
<head>
<style>
p i:first-child {
  color: blue;
} 
</style>
</head>
<body>

<p>Aku<i> Orang</i> yang kuat. Aku <i>orang</i> yang kuat</p>
<p>Aku<i> orang</i> yang kuat. aku <i>orang</i> yang kuat</p>
<p><b>Catatan:</b> Agar first-child bekerja di IE8 dan sebelumnya, DOCTYPE harus dideklarasikan.</p>

</body>
</html>

Mencocokan semua elemen <i> dengan seluruh ketururnan pertama elemen <p>

Dalam contoh berikut, selector mencocokan semua elemen <i> dengan seluruh keturunan pertama elemen <p>.

Contoh :

<!DOCTYPE html>
<html>
<head>
<style>
p:first-child i {
  color: blue;
} 
</style>
</head>
<body>

<p>Aku<i> orang</i> yang Kuat. Aku <i>orang</i>yang kuat.</p>
<p>Aku<i> orang</i> yang kuat. aku <i>orang</i> yang kuat</p>
<p><b>Catatan:</b> Agar first-child bekerja di IE8 dan sebelumnya, DOCTYPE harus dideklarasikan.</p>

</body>
</html>

Pseudo-class:lang pada CSS

Pseudo-class: lang memungkinkan kita dalam menentukan aturan khusus pada berbagai bahasa.

Pada contoh di bawah ini pseudo-class: lang mendefinisikan tanda kutip untuk elemen <q> dengan lang = “no”.

Contoh :

<!DOCTYPE html>
<html>
<head>
<style>
q:lang(no) {
  quotes: "~" "~";
}
</style>
</head>
<body>

<p>Beberapa teks <q lang="no">Kutipan dalam paragraf</q> sejumlah teks.</p>
<p>Dalam contoh ini :lang mendefinisikan tanda kutip untuk elemen q dengan lang = "no":</p>
<p><b>Catatan:</b> IE8 mendukung pseudo-class:lang hanya jika DOCTYPE ditentukan.</p>

</body>
</html>

Seluruh Pseudo Class pada CSS

SelectorContohDeskripsi Contoh
:activea:activeMemilih link aktif
:checkedinput:checkedMemilih setiap elemen <input> yang dicentang
:disabledinput:disabledMemilih setiap elemen <input> yang dinonaktifkan
:emptyp:emptyMemilih setiap elemen yang tidak memiliki turunan
:enabledinput:enabledMemilih setiap elemen <p> yang diaktifkan
:first-childp:first-childMemilih setiap elemen <p> yang merupakan anak pertama dari induknya
:first-of-typep:first-of-typeMemilih setiap elemen <p> yang merupakan elemen <p> pertama dari induknya
:focusinput:focusMemilih elemen yang memiliki elemen focus
:hovera:hoverMemilih link di atas mouse
:in-rangeinput:in-rangeMemilih elemen <input> dengan nilai dalam rentang yang ditentukan
:invalidinput:invalidMemilih semua elemen <input> dengan nilai yang tidak valid
:lang(language)p:lang(it)Memilih setiap elemen <p> dengan nilai atribut lang yang diawali dengan “it”
:last-childp::last-childMemilih setiap elemen <p> yang merupakan turunan terakhir dari induknya
:last-of-typep:last-of-typeMemilih setiap elemen <p> yang merupakan elemen <p> terakhir dari induknya
:linka:linkMemilih semua link yang belum dikunjungi
:not(selector):not(p)Memilih setiap elemen yang bukan merupakan elemen <p>
:nth-child(n)p:nth-child(2)Memilih setiap elemen <p> yang merupakan anak kedua dari induknya
:nth-last-child(n)p:nth-last-child(2)Memilih setiap elemen <p> yang merupakan anak kedua dari induknya, dihitung dari anak terakhir
:nth-last-of-type(n)p:nth-last-of-type(2)Memilih setiap elemen <p> yang merupakan elemen <p> kedua dari induknya, dihitung dari turunan terakhir
:nth-of-type(n)p:nth-of-type(2)Memilih setiap elemen <p> yang merupakan elemen <p> kedua dari induknya
:only-of-typep:only-of-typeMemilih setiap <p> elemen yang merupakan satu-satunya elemen <p> dari induknya
:only-childp:only-childMemilih setiap elemen <p> yang merupakan anak tunggal dari induknya
:optionalinput:optionalMemilih elemen <input> tanpa atribut “optional”
:out-of-rangeinput:out-of-rangeMemilih elemen <input> dengan nilai di luar rentang yang ditentukan
:read-onlyinput:read-onlyMemilih elemen <input> dengan atribut “readonly” yang ditentukan
:read-writeinput:read-writeMemilih elemen <input> tanpa atribut “readonly”
:requiredinput:requiredMemilih elemen <input> dengan atribut “required” yang ditentukan
:rootrootMemilih elemen root dokumen
:target#news:targetMemilih elemen active #news saat ini (diklik pada URL yang berisi nama anchor itu)
:validinput:validMemilih semua elemen <input>dengan nilai yang valid
:visiteda:visitedMemilih semua link yang telah dikunjungi

Seluruh Elemen Pseudo CSS

SelectorContohContoh Deskripsi
::afterp::afterMenyisipkan konten setelah semua elemen <p>
::beforep::beforeMenyisipkan konten sebelum semua elemen <p>
::first-letterp::first-letterMemilih huruf pertama dari setiap elemen <p>
::first-linep::first-lineMemilih baris pertama dari setiap elemen <p>
::selectionp::selectionMemilih bagian elemen yang dipilih oleh pengguna

Sekian pembahasan tentang pseudo-class pada CSS, semoga bermanfaat.

You may also like