Dalam tutorial belajar CSS kali ini kita akan membahas tentang 2 jenis selector khusus di dalam CSS, yakni Pseudo-class dan Pseudo-element. Kedua selector ini mirip dalam pengertiannya, sehingga kita juga akan membahas tentang perbedaan keduanya.
Pengertian Pseudo Selector dalam CSS
Selain 5 selector dasar yang telah kita pelajari dalam Tutorial CSS: Mengenal Jenis-jenis Selector Dasar CSS, CSS masih memiliki 2 selector lagi untuk membantu kita untuk 'menyeleksi' bagian kode HTML yang ingin dibuat 'style'nya. Kedua selector ini adalah Pseudo-class selector dan Pseudo-element selector, secara umum saya menyebut kedua selector ini sebagai pesudo selector.
Walaupun terkesan 'rumit', pseudo selector ini tidak terlalu susah dipahami. Disebut pseudo selector (selector 'semu') karena tidak seperti selector lain, pseudo selector digunakan untuk mengakses kode HTML yang 'tidak terlihat' atau merupakan bagian dari sebuah tag yang tidak bisa diakses dengan selector biasa.
Saya akan membahas Pseudo-class terlebih dahulu.
Pengertian Pseudo-class Selector CSS
Pseudo Class Selector adalah selector CSS yang digunakan untuk mengakses bagian tertentu dalam HTML yang tidak 'terlihat' (tidak tertulis di dalam HTML) atau bagian dari HTML yang tidak bisa diakses dengan selector sederhana lain.
Dalam referensi dari W3C, Pseudo-class selector dijelaskan sebagai berikut:
The pseudo-class concept is introduced to permit selection based on information that lies outside of the document tree or that cannot be expressed using the other simple selectors. http://www.w3.org/TR/css3-selectors/#pseudo-classes
Penggunaan pseudo class selector lebih banyak dirancang untuk mengakses 'kondisi khusus' dalam HTML.
Sebagai contoh, seperti yang kita ketahui bahwa tag <a> digunakan untuk membuat link di dalam HTML. Jika kita ingin membuat link berwarna merah, berikut adalah kode CSS menggunakan tag selector:
a { color:red; }
Untuk mengakses sebuah link, kita akan mengarahkan mouse ke dalam tulisan link tersebut. Pada saat cursor mouse berada di atas link, kita juga bisa mengubah warna link untuk saat itu saja, yakni pada saat posisi cursor mouse berada di atas link (istilah programmingnya: mouseover). Untuk hal ini, CSS menyediakan pseudo-class selector ":hover".
Untuk membuat tag <a> yang akan berubah menjadi hijau ketika mouse berada diatasnya (mouseover), kita menulisnya sebagai berikut:
a:hover { color:green; }
Perhatikan bahwa penulisan pseudo-class selector diawali dengan satu tanda titik dua (":").
:hover { color:yellow; }
Selain membuat style utuk efek "mouseover" seperti diatas, pseudo-class selector masih memiliki beberapa selector lain, seperti :visited , :focus , :active, :nth-child(N), :last-child, only-child dan :not(S).
Pengertian Pseudo-element Selector CSS
Jika pseudo-class selector lebih berfokus kepada kondisi khusus dari HTML, maka pseudo-element selector akan menyeleksi 'potongan' tag atau mengakses sebuah elemen yang sebelumnya tidak ada.
Dalam referensi dari W3C, Pseudo-element selector dijelaskan sebagai berikut:
Pseudo-elements create abstractions about the document tree beyond those specified by the document language. For instance, document languages do not offer mechanisms to access the first letter or first line of an element's content. Pseudo-elements allow authors to refer to this otherwise inaccessible information. Pseudo-elements may also provide authors a way to refer to content that does not exist in the source documen. http://www.w3.org/TR/css3-selectors/#pseudo-elements
Dalam versi CSS1 dan CSS2, pseudo-element ditulis menggunakan 1 tanda titik dua seperti pseudo-class (:), namun dalam CSS3, pseudo-element ditulis menggunakan 2 tanda titik dua (::). Perubahan ini dibuat untuk menekankan perbedaan antara pseudo-class dengan pseudo-element.
Walaupun dalam spesifikasi CSS3 pseudo-element harus ditulis menggunakan 2 buah tanda titik 2 (::), namun web browser modern masih mendukung penulisan menggunakan 1 tanda titik dua (:). Sebagai contoh, p::first-line boleh juga ditulis menjadi p:first-line. Lebih jauh lagi, IE8 kebawah masih 'tidak mengerti' tanda "::", sehingga menggunakan tanda ":"untuk pseudo-element masih umum digunakan.
Sebagai contoh, pseudo-element memiliki selector ::first-letter yang bisa digunakan untuk menyeleksi huruf pertama dari sebuah paragraf. Misalkan untuk membuat huruf pertama pada tag <p> berwarna merah, maka kode CSSnya adalah sebagai berikut:
p::first-letter { color:red; }
Beberapa contoh pseudo-class selector lainnya adalah: ::first-line, ::before, dan ::after. Kita akan membahasnya secara mendalam pada tutorial lainnya.
Contoh Penggunaan Pseudo-class dan Pseudo-element CSS
Sebagai contoh tutorial penggunaan pseudo-class dan pseudo-element dalam CSS, berikut adalah kode HTML dan CSS dengan menggunakan :hover dan ::first-letter:
<!DOCTYPE html> <html> <head> <title>Belajar Pseudo-class dan Pseudo-element CSS</title> <style type="text/css"> a:hover {    color : green;   }                p::first-letter {     font-size : 30px;     color : red;     float : left; } </style> </head> <body>   <h2>Belajar Pseudo-class dan Pseudo-element CSS</h2>   <h3>contoh pseudo-class: :hover</h3>   <a href="https://www.duniailkom.com">Belajar CSS di www.duniailkom.com</a>   <h3>contoh pseudo-element: ::first-letter</h3>   <p class="left">Lorem ipsum dolor sit amet, consectetur   adipiscing elit. Nulla erat dolor, ullamcorper in ultricies   eget,fermentum rhoncus leo. Curabitur eu mi vitae metus   posuere laoreet. Eam facilis omittantur at, usu efficiantur   neglegentur delicatissimi et, in per vero splendide   persequeris.<p> </body> </html>
Dalam contoh diatas, saya membuat sebuah link yang akan berubah warnanya menjadi hijau ketika cursor mouser berada di atas link tersebut (menggunakan :hover), dan sebuah paragraf dengan huruf pertama berwarna merah (menggunakan ::first-letter).
Dalam tutorial kali ini kita telah membahas selector lanjutan menggunakan pseudo-class dan pseudo-element. Pembahasan lebih mendalam tentang penggunaan contoh masing-masing selector akan saya bahas dalam tutorial berikutnya.
Pak,
apakah CSS, PHP, dan HTML itu sama ??
dan apabila dijadikan satu apakah tidak akan crash atau gimana ??
HTML, CSS, dan PHP itu berbeda. Ketiganya merupakan kode-kode yang digunakan untuk membuat website. Idealnya malah semuanya harus digunakan secara bersamaan, di tambah lagi dengan JavaScript. Situs duniailkom ini juga menggunakan ke-4 teknologi tersebut untuk dapat menghasilkan website yang dinamis.
Mungkin Saichu bisa mempelajari tutorial HTML dasar sebagai perkenalan tentang teknologi-teknologi bahasa pemrograman web.
keren banget, sampe ngerti sejauh ini tentang CSS… terima kasih dunia ilkom.. mohon diperbanyak lagi… hehehe…
Ditunggu saja kelanjutan tutorial CSSnya y gan.. hehe…
Bang.. bikin artikel tentang kelebihan HTML 5 sama tentang Jquery dong.. Masih nubi ane bang :)
thanks.
admin, tutorial css nya kapan ditambah lagi? nungguin :)
kalo boleh request kasih tutorial ngedesain web pake html sama css dari awal sampe jadi dong. hehee
btw thanks banget yaaa, tutorialnya keren. penjelasannya gampang dimengerti. ayooo dilanjut lagi. especially css nyaaaa :D
Hehe.. iya ya, sudah lama tutorial CSSnya agak 'terlantar'. Mudah2an nanti saya ada waktu untuk update materinya :)
mudah2an ada waktu :)
thanks admin
Mas, saya mau nanya nih.
Kalau html kan versinya ada sampai 5 dan ada juga xhtml.
Nah, kalau ngatur html5, html4, xhtml dan-lain-lain itu css beda apa sama ya??
Misalnya kalau ngatur hover di xhtml sama di html5..
Mohon penjelasannya.
Terima kasih.
Kalau dari kode CSS nya sama saja mas, baik itu HTML 4.01, XHTML maupun HTML5 tidak perlu perubahan kode CSS.
Karena perbedaan diantara ketiga versi HTML tersebut tidak terlalu banyak, cuma penambahan tag-tag baru saja.
Keren-keren artikelnya, lebih rinci dan bahasanya mudah dipahami. Di kuliahku aja gak pernah dijelasin detail soal pseudo class sama pseudo element. Ini ane juga udah baca semua artikel css nya, keren2.
Ini sekalian mau tanya.
-Bisa minta artikel yang ngejelasin soal shorthand CSS gak? Ane nyari2 gak ada dunia ilkom gak ada.
-Karna ane suka utek2 skrip CSS, kemarin ane nemu skrip ini "Display:inline-block" nah itu maksutnya apa?
-Sama ini yang terkhir skrip buat bikin animasi lewat CSS "(animasi)@-webkit-keyframe" fungsinya buat apa?
Udah itu aja, moga pertanyaan ane bisa segera direspon dan dunia ilkom bisa makin maju.
Terimakasih gan, senang bisa membantu :)
1. Untuk artikel tentang shorthand ditunggu saja y gan..
2. Display:inline-block adalah trik untuk membuat sebuah kontainer sebagai inline level element, tetapi isi dari kontainer tersebut akan di tampilkan sebagai block level element. Ini memang harus dijelaskan bersama2 dengan pembahasan tentang property float dan cara mengatur tampilan layout.
3. @-webkit-keyframe cukup panjang kalau dibahas disini gan, mungkin nanti saya buatkan artikelnya juga, prinsipnya ini untuk membuat keyframe animasi CSS. Awalan '-webkit' dikenal juga dengan istilah vendor prefix, yakni property CSS yang ditujukan untuk web browser tertentu (-webkit untuk google chrome, safari dan opera, sedangkan '-moz' untuk mozilla).
Saat ini saya sedang mengerjakan eBook CSS yang juga akan membahas layout dan animasi ini. Mungkin tutorialnya menyusul setelah eBook CSS selesai :)
Terima kasih gan udah di reply.
Sekalian mau kenalan gan, jadi ntar kalo nanya2 atau diskusi2 biar enak. Ini ane lulusan D3 jurusan Teknik Informatika tapi dengan nilai IPK terakhir 2,5 keren gak gan. Ane aremania gan, asli malang jawa timur. Sama mau nanya satu lagi boleh ya gan . .
1. Ini ane udah 2 kali nglamar di perusahaan IT di sekitar Jawa Timur tapi ane ditolak semua. Emang ane nekat gan, cman berbekal ilmu HTML, CSS sama PHP. Nah, emang harus nguasain apa lagi gan biar diterima?
2. Terus kenapa setiap lowongan programmer entah Web atau Android usianya selalu dibatasi. Ini usia ane udah 24 tahun gan, ane kadang jadi takut sendiri gan. Alasan dikasih batasan umur kenapa ya?
Meskipun dengan IPK 2,5 ane gak nyerah buat belajar gan, sekarang ane udah bisa bikin animasi lewat CSS gan. Ni ane juga follow terus artikelnya duniailkom lewat email. Jaya terus DUNIAILKOM!!
Salam kenal juga gan… :)
1. Perusahaan IT nya skala nasional atau lokal gan (apakah sejenis start up)? Sebenarnya tergantung kebutuhan perusahaan, apakah emang lg butuh programmer atau tidak, Kalau mereka memang buka lowongan, biasanya kan ada skill sebagai syarat, nah agan tinggal sesuaikan saja apakah memang memenuhi atau tidak.
Kalau saya lihat, kebutuhan programmer dunia kerja saat ini menuntut sampai ke framework gan, tidak hanya dasar HTML, CSS atau PHP saja. Kalau agan fokus ke web designer, harus sudah paham cara menggunakan Bootstrap atau Zurb Foundation. Jika fokus ke programmer PHP, harus bisa sampai framework Code Igniter atau Laravel.
2. Mengenai batasan umur saya juga kurang paham untuk apa, kalau perusahaan besar biasanya karena yang muda2 punya semangat juang tinggi (bisa di push untuk kejar target) dan belum berumah tangga (agar bisa fokus, terutama untuk perempuan), tapi itupun biasanya bisa sampai umur 27/28. Kalau untuk perusahaan start up / kecil, menurut saya yang penting skill saja.
Oh ya gan, dari pengalaman saya, lowongan kerja programmer memang tidak begitu banyak, terutama jika agan membidik perusahaan besar. Rekan2 saya sesama kuliah (S1 Ilmu Komputer sebuah PTN di Sumatera), mungkin cuma 5% saja yang dapat kerja berhubungan dengan programming, selebihnya jadi PNS, Guru, atau pegawai bank (termasuk saya dulu)..hehe…
Tp ini cuma sebagai sharing saja…. Kalau memang bercita2 jadi programmer, FIGHT sampai akhir… dan yang penting terus tingkatkan skill dan kemampuan.. :)
Salam,
Andre
Setelah berjuang dan berkali-kali ditolak akhirnya ane diterima kerja di web programmer gan. Pas tes ane disuruh ngutak-ngatik skrip PHP. Untung aja ane masih inget dikit.
Nah, sekarang yang jadi masalah ane disuruh mempelajari BOOTSTRAP gan. Katanya biar lebih simple daripda pake murni pake CSS. Masalahnya ane kagak tau sama sekali sama yang namanya BOOTSTRAP gan. .
Saya harap Duniailkom bisa memberi artikel tentang BOOTSTRAP sama JQUERY juga kalo bisa gan. Hehehe . .
Selamat ya gan, sudah dapat kerja yang pas sebagai web programmer… :)
Tentang tutorial Bootstrap dan jQuery saya tampung ya,… mungkin menunggu eBook CSS dan PHP selesai dulu.
Terkait Bootstrap, menurut saya bukan lebih simple sih gan, tapi 'lebih cepat'. Bootstrap digunakan untuk membuat layout dan design web responsive dengan cepat, tapi kita tetap butuh pengetahuan tentang CSS, apalagi jika pengen utak-atik kode Bootstrapnya..
gan ane coba pake p::first letter tapi gimana biar hanya pada paragraf posting saja, jadi ngga semua huruf awal yang pake tag p
maaf gan udah ketemu. ane kurang teliti :(
Syukurlah.. :)
Biasanya ini diatur dari selector CSSnya gan, misalnya pakai class selector untuk menentukan paragraf mana saja yang akan menggunakan ::first-letter.
saya akan selalu menunggu artikel anda..sebagai pengetahuan walaupun dasar pendidikan saya tidak ada menyagkut jurusan IT tapi saya suka orang-orang IT…..makanya walau uda kepala tiga saya mau belajar sesuatu yang baru……walau hanya sekedar mengetahui saja…thank duniailkom
Sama2 pak, wah suatu penghargaan bagi saya bapak sudah meluangkan waktu untuk belajar di sini, semoga tutorialnya bisa dipahami dengan mudah.
Mengenai update tutorial CSSnya, ditunggu saja y pak :)
Setelah masuk ke dunia web ane sekarang udah ngerti gan kalau masa depan dunia web akan bergerak di web dinamis. Makanya sekarang ane udah mulai belajar PHP gan, setelah belajar PHP rencana ane mau belajar Code Igniter.
Masalahnya ane searching2 di internet gak ada yang bikin ane ngerti gan. Karena duniailkom terkenal dengan bahasanya yang simpel dan mudah dimengerti, jadi harapan kedepannya duniailkom bisa ngasih materi soal Code Igniter.
Untuk kearah sana sudah ada gan, tapi mungkin menunggu eBook PHP selesai dulu,..
Ditunggu saja y gan… :)
sy sdah tua, jaman sy kl mau kuliah kekomputeran muahal. 7,5jt sampai 10jt/smtster. sedang umk saat itu cm 700rb. yg bisa kuliah cuma org ngetop. skrg ilmu bisa didapat dgn murah bahkan free. asal sungguh2 pasti paham..
trims mas andre, slama ini sy cuma familiar sama word excel saja. tapi 1bulan ini sy full tongkorongin html dan css disini. alhamdulillah paham.. sbnarnya target sy blajar pemrograman untuk software, krna sy mengikuti petunjuk (blajar pemrograman harus mulai dari mana?). sy sudah sampai disini skrg..
kl ebook php udah finish, insyaAlloh sy mau beli. (HTML, CSS, PHP) kali aja kalo beli 3 dapat bonus ebook java script hehe
Wah, saya salut banget dengan pak yoyon yang masih pengen belajar, apalagi belajar programming. Suatu penghormatan bagi saya pak yoyon mau berkunjung kesini :)
Hehe.. siap pak, sekarang saya sedang lanjut nulis eBook PHP. Mudah2an bisa cepat selesai.
Mas saya mau tanya sekaligus minta sarannya.
Saya baru belajar buat webiste pertama tama kan kita rancang dulu layout website nya, nah pertama saya buat dulu kan header nya pake css . yang mau saya tanyakan apakah header nya harus di buat responsive(Untuk semua bagian layout) atau ngga ya terus untuk satuan nya sendiri yang lebih disarankan pake pixel atau persen ?? terimakasih
Iya mas, kalau pengen membuat layout responsive, semua bagian sudah direncanakan menggunakan responsive juga, termasuk header, footer, sidebar, dll. Contohnya situs duniailkom ini, di dalam header terdapat menu. Menu ini mesti responsive juga.
Mengenai pixel atau persen, tergantung design yang pengen di buat mas, malah bisa gabungan keduanya. terutama untuk membuat design responsive.
tiap hari dah nongkrong di sini. hehe
ada yang ingin saya tanyakan mas.
p::first-letter {
font-size : 30px;
color : red;
float : left;
}
berarti di mana ada TAG "<p>" dan huruf pertama dari content TAG "<p>" tsb akan bernilai 30px dan berwana merah .
jika saya ingin memasukan perintah pseudo element css tsb dan ketika menggunakan tag "<p>" tapi content di dalam TAG "p" tsb tidak berubah (default), bagaimana caranya?
krn saya sudah coba untuk membuat class / id jika menggunakan pseudo element + pseudo class tapi tidak bisa.
contoh dengan class di pseudo element (css di dalam tag "head" :
p.satu:hover{
color: red;
}
html :
<p class="satu"> Hai semua nama sayaa blabla</p>
maaf jika sebelumnya sudah pernah di tanyakan di materi pseudo element & class ini.
trims.
maaf salah ketik di komen sy sebelumnya. kode css di atas yang saya maksud adalah pseudo class. bukan pseudo element :)
Mohon maaf nih mas, saya agak bingung dengan pertanyaannya:
"jika saya ingin memasukan perintah pseudo element css tsb dan ketika menggunakan tag "<p>" tapi content di dalam TAG "p" tsb tidak berubah (default), bagaimana caranya?"
Maksudnya seperti apa y? pengen mengambalikan efek CSSnya seperti semua (default) y?
"Maksudnya seperti apa y? pengen mengambalikan efek CSSnya seperti semua (default) y?"
iya default di tag <p> (jadi warna hitam mas)
btw sory sebelumnya mas. ini udah solved. udah saya coba" gimana si pseudo class tsb agar tidak bs dijalan atau bisa di jalankan (di tag <p> dalam kasus ini). hehe
trims :D
Hehe, siip.. lanjut mas :)
Terima kasih atas infonya.
Akhirnya jadi mengerti perbedaannya. :)
Mantab.. sangat sangat membantu jadi ngerti dah CSS
ohh,, saya baru tau kalo huruf pertama yang besar dan warnanya beda pake pseudo-element
lumayan dapet ilmu baru, thanks share nya pak :D
Sama2 gan :)
Tutorial bootstrap ada atau tidak, Min?
Saat ini belum ada gan, mudah2an segera menyusul..
(CSS1, CSS2, CSS3) dan (xHTML, HTML, HTML5) Letak perbedaanya dimana? Apakah perbedaan versi tersebut sama dengan Perbedaan misalnya (Ms Office 2007 dengan Ms Office 2010) atau misalnya (Corel DrawX4 dengan Corel DrawX5).
Seperti yang saya ketahui jika perbedaan versi dari sebuah program yang sama hanya terletak dari penambahan vitur saja. Nah Apakah perbedaan versi dari CSS atau HTML juga demikian? Padahal CSS dan HTML adalah jenis bahasa saja bukan merupakan program.
Jadi menurut saya kita tidak perlu memikirkan versi dari sebuah CSS atau HTML karena semua text editor mendukung cara penulisannya
Betul, kurang lebih seperti itu. Versi CSS3 lebih ke penambahan fitur baru dari versi-versi sebelumnya. Basic dari CSS itu sendiri tetap tidak berubah dari CSS1. Hal yang sama juga berlaku untuk HTML5 yang berisi penambahan fitur2 baru dari HTML4 dan xHTML. Ada juga beberapa penghapusan fitur atau perubahan fungsi, namun tidak banyak.
Hal yang sama juga berlaku untuk hampir seluruh bahasa pemrograman. Dasar dari PHP7 nyaris sama dengan PHP5 atau PHP4. Cukup jarang terdapat perubahan besar, dan jikapun ada lebih ke fitur2 lanjutan (bukan basic-nya).
Jika pengen sekedar paham dasar2 bahasa pemrograman, memang tidak perlu ambil pusing dengan berbagai versi ini. Tapi jika ingin serius dipelajari, lebih baik mengikuti perkembangan dan menggunakan versi paling update.