CSS: Perbedaan antara revisi
Impor teks terkontrol dari Wikipedia bahasa Indonesia; revisi 29029470; atribusi sumber disertakan. |
Presentation V4: sitasi, referensi, Math, Wikimedia Commons, dan atribusi |
||
| Baris 1: | Baris 1: | ||
[[File:Пример_кода_на_CSS.jpg|thumb|right|280px|Пример кода на CSS]] | |||
'''Cascading Style Sheet''' (disingkat '''CSS''') adalah bahasa lembar gaya yang digunakan sebagai penentu [[presentasi]] dan gaya dokumen yang ditulis dalam [[bahasa markup]] seperti [[HTML]] dan [[XML]]. CSS termasuk ke dalam teknologi dasar [[Waring Wera Wanua|World Wide Web]], bersama dengan [[HTML]] dan [[JavaScript]]. | '''Cascading Style Sheet''' (disingkat '''CSS''') adalah bahasa lembar gaya yang digunakan sebagai penentu [[presentasi]] dan gaya dokumen yang ditulis dalam [[bahasa markup]] seperti [[HTML]] dan [[XML]]. CSS termasuk ke dalam teknologi dasar [[Waring Wera Wanua|World Wide Web]], bersama dengan [[HTML]] dan [[JavaScript]]. | ||
Nama ''cascading'' berasal dari skema prioritas yang ditetapkan untuk menentukan deklarasi mana yang berlaku jika lebih dari satu deklarasi properti cocok dengan elemen tertentu. Skema prioritas ''cascading'' ini dapat diprediksi. | Nama ''cascading'' berasal dari skema prioritas yang ditetapkan untuk menentukan deklarasi mana yang berlaku jika lebih dari satu deklarasi properti cocok dengan elemen tertentu. Skema prioritas ''cascading'' ini dapat diprediksi. | ||
Sama halnya ''styles'' dalam [[aplikasi]] pengolahan kata seperti [[Microsoft Word]] yang dapat mengatur beberapa ''style'', misalnya ''heading'', ''subbab'', ''bodytext'', ''footer'', ''images'', dan ''style'' lainnya untuk digunakan secara bersamaan dalam beberapa berkas (''[[file]]''). Pada umumnya CSS digunakan untuk memformat tampilan halaman web yang dibuat dengan [[bahasa]] [[HTML]] dan [[XHTML]]. | Sama halnya ''styles'' dalam [[aplikasi]] pengolahan kata seperti [[Microsoft Word]] yang dapat mengatur beberapa ''style'', misalnya ''heading'', ''subbab'', ''bodytext'', ''footer'', ''images'', dan ''style'' lainnya untuk digunakan secara bersamaan dalam beberapa berkas (''[[file]]'').<ref>Slamet Riyanto, ''Membuat Web Portal Multi Bahasa Jomla 1.5X + CD'', halaman 236. Elex Media Komputindo.</ref> Pada umumnya CSS digunakan untuk memformat tampilan halaman web yang dibuat dengan [[bahasa]] [[HTML]] dan [[XHTML]].<ref>Slamet Riyanto, ''Membuat Web Portal Multi Bahasa Jomla 1.5X + CD'', halaman 236. Elex Media Komputindo.</ref> | ||
CSS dapat mengendalikan [[ukuran]] [[gambar]], [[warna]] bagian tubuh pada teks, warna [[tabel]], ukuran border, warna border, warna [[hyperlink]], warna ''[[mouse]] over'', spasi antar paragraf, spasi antar teks, margin kiri, kanan, atas, bawah, dan parameter lainnya. CSS adalah bahasa [[Stylesheet|style sheet]] yang digunakan untuk mengatur tampilan dokumen. | CSS dapat mengendalikan [[ukuran]] [[gambar]], [[warna]] bagian tubuh pada teks, warna [[tabel]], ukuran border, warna border, warna [[hyperlink]], warna ''[[mouse]] over'', spasi antar paragraf, spasi antar teks, margin kiri, kanan, atas, bawah, dan parameter lainnya.<ref>Slamet Riyanto, ''Membuat Web Portal Multi Bahasa Jomla 1.5X + CD'', halaman 236. Elex Media Komputindo.</ref> CSS adalah bahasa [[Stylesheet|style sheet]] yang digunakan untuk mengatur tampilan dokumen.<ref>Dominikus Juju & Matamaya Studio, ''Seri Penuntun Praktis Join Multiply'', halaman 95. Elex Media Komputindo.</ref> | ||
== Sejarah == | == Sejarah == | ||
Nama CSS didapat dari fakta bahwa setiap deklarasi ''style'' yang berbeda dapat diletakkan secara berurutan, yang kemudian membentuk hubungan ayah-anak (''parent-child'') pada setiap ''style''.<ref>Sulistyawan, Rubianto, Rahmad Saleh, ''Modifikasi Blog Multiply dengan CSS'', halaman 32. Elex Media Komputindo.</ref> CSS sendiri merupakan sebuah [[teknologi]] [[internet]] yang direkomendasikan oleh [[World Wide Web Consortium]] atau [[W3C]] pada [[tahun]] [[1996]].<ref>Dominikus Juju & Matamaya Studio, ''Seri Penuntun Praktis Join Multiply'', halaman 95. Elex Media Komputindo.</ref> Setelah CSS distandardisasikan, [[Internet Explorer]] dan [[Netscape Navigator|Netscape]] melepas [[browser]] terbaru mereka yang telah sesuai atau paling tidak hampir mendekati dengan standar CSS.<ref>Sulistyawan, Rubianto, Rahmad Saleh, ''Modifikasi Blog Multiply dengan CSS'', halaman 32. Elex Media Komputindo.</ref> | |||
Nama CSS didapat dari fakta bahwa setiap deklarasi ''style'' yang berbeda dapat diletakkan secara berurutan, yang kemudian membentuk hubungan ayah-anak (''parent-child'') pada setiap ''style''. CSS sendiri merupakan sebuah [[teknologi]] [[internet]] yang direkomendasikan oleh [[World Wide Web Consortium]] atau [[W3C]] pada [[tahun]] [[1996]]. Setelah CSS distandardisasikan, [[Internet Explorer]] dan [[Netscape Navigator|Netscape]] melepas [[browser]] terbaru mereka yang telah sesuai atau paling tidak hampir mendekati dengan standar CSS. | |||
Untuk saat ini terdapat tiga versi CSS, yaitu [[CSS 1|CSS1]], [[CSS 2|CSS2]], dan [[CSS 3|CSS3]]. | Untuk saat ini terdapat tiga versi CSS, yaitu [[CSS 1|CSS1]], [[CSS 2|CSS2]], dan [[CSS 3|CSS3]]. | ||
| Baris 15: | Baris 16: | ||
CSS3 mendukung penentuan posisi konten, downloadable, huruf font, tampilan pada tabel /table layout dan media tipe untuk printer. Kehadiran versi CSS yang ketiga diharapkan lebih baik dari versi pertama dan kedua. | CSS3 mendukung penentuan posisi konten, downloadable, huruf font, tampilan pada tabel /table layout dan media tipe untuk printer. Kehadiran versi CSS yang ketiga diharapkan lebih baik dari versi pertama dan kedua. | ||
[[CSS 3|CSS3]] juga dapat melakukan animasi pada halaman website, di antaranya animasi warna hingga animasi 3D. Dengan CSS3 desainer lebih dimudahkan dalam hal kompatibilitas websitenya pada smartphone dengan dukungan fitur baru yakni [https://www.rumahweb.com/journal/belajar-css-bagian-9/ media query]. Selain itu, banyak fitur baru pada CSS3 seperti: multiple background, border-radius, drop-shadow, border-image, CSS Math, dan CSS Object Model. | [[CSS 3|CSS3]] juga dapat melakukan animasi pada halaman website, di antaranya animasi warna hingga animasi 3D. Dengan CSS3 desainer lebih dimudahkan dalam hal kompatibilitas websitenya pada smartphone dengan dukungan fitur baru yakni [https://www.rumahweb.com/journal/belajar-css-bagian-9/ media query]. Selain itu, banyak fitur baru pada CSS3 seperti: multiple background, border-radius, drop-shadow, border-image, CSS Math, dan CSS Object Model.<ref>[http://w3schools.com/css3/css3_intro.asp CSS 3 Introduction]. W3Schools.</ref> | ||
== Penulisan == | == Penulisan == | ||
Saat masuk pada bagian CSS, sering dijumpai kode sebagai berikut: | Saat masuk pada bagian CSS, sering dijumpai kode sebagai berikut: | ||
<syntaxhighlight lang="css"> | |||
body { | |||
color: black; | |||
} | |||
</syntaxhighlight> | |||
Bagian pertama sebelum tanda kurung kurawal '{}' disebut ''selector'', sedangkan yang diapit oleh kurung kurawal disebut ''declaration'' yang terdiri dari ''dua'' unsur, yaitu ''property'' dan ''value''. ''Selector'' dalam pernyataan di atas adalah body, <code>color</code> adalah properti, dan <code>black</code> adalah nilai.<ref>Untung Julianto, ''Modifikator Blogger + CD'', halaman 22. Elex Media Komputindo.</ref> | |||
Selain itu, ada tiga metode penulisan atribut pada CSS, yaitu:<ref>Untung Rahardja, Augury El Rayeb, & Asep Saefullah (2009). ''Siapa saja bisa membuat website dengan CSS dan HTML'', halaman 37-41. Andi Yogyakarta.</ref> | |||
Selain itu, ada tiga metode penulisan atribut pada CSS, yaitu: | |||
=== Inline Style Sheet === | === Inline Style Sheet === | ||
CSS didefinisikan langsung pada tag HTML yang bersangkutan. Ini ditulis dengan menambahkan atribut '''style="..."''' dalam tag HTML tersebut. Gaya hanya akan berlaku pada tag yang bersangkutan, dan tidak akan memengaruhi tag HTML yang lain. | CSS didefinisikan langsung pada tag HTML yang bersangkutan. Ini ditulis dengan menambahkan atribut '''style="..."''' dalam tag HTML tersebut.<ref>Untung Rahardja, Augury El Rayeb, & Asep Saefullah (2009). ''Siapa saja bisa membuat website dengan CSS dan HTML'', halaman 37-41. Andi Yogyakarta.</ref> Gaya hanya akan berlaku pada tag yang bersangkutan, dan tidak akan memengaruhi tag HTML yang lain.<ref>Untung Rahardja, Augury El Rayeb, & Asep Saefullah (2009). ''Siapa saja bisa membuat website dengan CSS dan HTML'', halaman 37-41. Andi Yogyakarta.</ref> | ||
Contoh: | Contoh: | ||
<syntaxhighlight lang="html4strict" line="1"> | |||
<html> | |||
<head> | |||
<title>Contoh Bentuk Inline</title> | |||
</head> | |||
<body> | |||
<p id="cth1"> | |||
Ini adalah contoh tag P tanpa diformat menggunakan CSS </p> | |||
<p id="cth2" style="font-size:20pt;"> | |||
Tag P ini diformat dengan besar font 20 point </p> | |||
<p id="cth3" style="font-size:14pt; color:red;"> | |||
Tag P ini diformat dengan besar font 14 point, dan menggunakan warna merah </p> | |||
</body> | |||
</html> | |||
</syntaxhighlight> | |||
=== Internal CSS === | === Internal CSS === | ||
CSS didefinisikan terlebih dahulu dalam tag '''<style> ... </style>''' di dalam tag '''<head>'''. Pada pendefinisian ini disebutkan atribut-atribut CSS yang akan digunakan untuk tag-tag HTML, yang selanjutnya dapat digunakan oleh tag HTML yang bersangkutan. | CSS didefinisikan terlebih dahulu dalam tag '''<style> ... </style>''' di dalam tag '''<head>'''.<ref>Untung Rahardja, Augury El Rayeb, & Asep Saefullah (2009). ''Siapa saja bisa membuat website dengan CSS dan HTML'', halaman 37-41. Andi Yogyakarta.</ref><ref>[https://developer.mozilla.org/en-US/docs/Learn/CSS/First_steps/How_CSS_is_structured How CSS is structured - Learn web development MDN].</ref> Pada pendefinisian ini disebutkan atribut-atribut CSS yang akan digunakan untuk tag-tag HTML, yang selanjutnya dapat digunakan oleh tag HTML yang bersangkutan. | ||
Contoh: | Contoh: | ||
<syntaxhighlight lang="html5" line="1"> | |||
<html> | |||
<head> | |||
<title>Contoh Bentuk Embedded</title> | |||
<style> | |||
body { | |||
background: #0000FF; | |||
color: #FFFF00; | |||
margin-left: 0.5in; | |||
} | |||
h1 { | |||
font-size: 18pt; | |||
color: #FF0000; | |||
} | |||
p { | |||
font-size: 12pt; | |||
font-family: Arial; | |||
text-indent: 0.5in; | |||
} | |||
</style> | |||
</head> | |||
<body> | |||
<h1 id="cth1">Judul ini berukuran 18 dengan warna merah!</h1> | |||
<p id="cth2">Tag p ini di format dengan besar font 12 point dengan tipe font Arial dan mempunyai indntasi 0.5 inci | |||
</p> | |||
<p id="cth3">Yang perlu diperhatikan juga bahwa body disini telah diformat dengan margin kiri 0.5 inch dan warna | |||
background biru</p> | |||
</body> | |||
</html> | |||
</syntaxhighlight> | |||
=== External CSS === | === External CSS === | ||
CSS didefinisikan dengan disimpan di berkas yang berbeda. Ini dapat digunakan di semua berkas HTML sehingga memudahkan seorang pengembang web untuk mengembangkan situs web miliknya. | CSS didefinisikan dengan disimpan di berkas yang berbeda. Ini dapat digunakan di semua berkas HTML sehingga memudahkan seorang pengembang web untuk mengembangkan situs web miliknya. | ||
<syntaxhighlight lang="html"><link href="lokasiberkas.css" rel="stylesheet"></syntaxhighlight> | |||
=== Shorthand CSS === | === Shorthand CSS === | ||
| Baris 60: | Baris 119: | ||
==== Margin ==== | ==== Margin ==== | ||
Artinya: | <syntaxhighlight lang="css"> | ||
margin: 3px 5px 7px 10px; | |||
</syntaxhighlight>Artinya:<syntaxhighlight lang="css"> | |||
margin-top: 3px; | |||
margin-right: 5px; | |||
margin-bottom: 7px; | |||
margin-left: 10px; | |||
</syntaxhighlight> | |||
==== Padding ==== | ==== Padding ==== | ||
Artinya: | <syntaxhighlight lang="css"> | ||
padding: 3px 5px 7px 10px; | |||
</syntaxhighlight>Artinya:<syntaxhighlight lang="css"> | |||
padding-top: 3px; | |||
padding-right: 5px; | |||
padding-bottom: 7px; | |||
padding-left: 10px; | |||
</syntaxhighlight> | |||
==== Font ==== | ==== Font ==== | ||
Artinya: | <syntaxhighlight lang="css"> | ||
font: italic bold 14px/30px Arial; | |||
</syntaxhighlight>Artinya:<syntaxhighlight lang="css"> | |||
font-style: italic; | |||
font-weight: bold; | |||
font-size: 14px; | |||
line-height: 30px; | |||
font-family: Arial; | |||
</syntaxhighlight> | |||
==== Background ==== | ==== Background ==== | ||
Artinya: | <syntaxhighlight lang="css"> | ||
background: #cc0000 url('igniel.jpg') no-repeat top center; | |||
</syntaxhighlight>Artinya:<syntaxhighlight lang="css"> | |||
background-color: #cc0000; | |||
background-image: url('igniel.jpg'); | |||
background-repeat: no-repeat; | |||
background-position: top center; | |||
</syntaxhighlight> | |||
==== Border ==== | ==== Border ==== | ||
Artinya: | <syntaxhighlight lang="css"> | ||
border: 3px solid #0000cc; | |||
</syntaxhighlight>Artinya:<syntaxhighlight lang="css"> | |||
border-width: 5px; | |||
border-style: solid; | |||
border-color: #0000cc; | |||
</syntaxhighlight> | |||
==== List ==== | ==== List ==== | ||
Artinya: | <syntaxhighlight lang="css"> | ||
list-style: disc inside url('dot.gif'); | |||
</syntaxhighlight>Artinya:<syntaxhighlight lang="css"> | |||
list-style-type: disc; | |||
list-style-position: inside; | |||
list-style-image: url('dot.gif'); | |||
</syntaxhighlight> | |||
=== Penulisan komentar pada CSS === | === Penulisan komentar pada CSS === | ||
<syntaxhighlight lang="css" line="1"> | |||
h1 { | |||
/* ini adalah komentar untuk satu baris */ | |||
color: red; | |||
} | |||
p { | |||
/* | |||
ini juga adalah komentar untuk dua baris atau lebih. | |||
seluruh teks yang berada pada pembuka dan penutup sebuah komentar | |||
akan diabaikan oleh browser sebagai compiler. | |||
*/ | |||
color: red; | |||
} | |||
</syntaxhighlight> | |||
== CSS Selector == | == CSS Selector == | ||
=== Universal Selector === | === Universal Selector === | ||
''Universal selector'' digunakan untuk diterapkan pada seluruh elemen. | ''Universal selector'' digunakan untuk diterapkan pada seluruh elemen.<ref>[https://developer.mozilla.org/en-US/docs/Web/CSS/Universal_selectors Universal selectors - CSS: Cascading Style Sheets MDN]. ''developer.mozilla.org''.</ref><syntaxhighlight lang="css" line="1"> | ||
/* diterapkan pada seluruh elemen */ | |||
* { | |||
color: green; | |||
} | |||
</syntaxhighlight> | |||
=== Type Selector === | === Type Selector === | ||
''Type selector'' merupakan cara penulisan CSS dengan nama elemen sebagai target untuk diterapkannya ''rule''. Ketika menggunakan ''selector'' ini, maka rule akan diterapkan pada seluruh elemen target yang ada pada dokumen HTML. | ''Type selector'' merupakan cara penulisan CSS dengan nama elemen sebagai target untuk diterapkannya ''rule''. Ketika menggunakan ''selector'' ini, maka rule akan diterapkan pada seluruh elemen target yang ada pada dokumen HTML.<ref>[https://developer.mozilla.org/en-US/docs/Web/CSS/Type_selectors Type selectors - CSS: Cascading Style Sheets MDN]. ''developer.mozilla.org''.</ref><syntaxhighlight lang="css" line="1"> | ||
/* akan diterapkan pada seluruh elemen <a>*/ | |||
a { | |||
color: blue; | |||
} | |||
</syntaxhighlight> | |||
=== ID Selector === | === ID Selector === | ||
''ID selector'' menetapkan target elemen berdasarkan nilai dari atribut id yang diterapkan pada elemennya. Agar elemen dapat terpilih, maka atribut '''id''' pada elemen harus sama persis dengan yang ada di selector. Contohnya adalah sebagai berikut: | ''ID selector'' menetapkan target elemen berdasarkan nilai dari atribut id yang diterapkan pada elemennya. Agar elemen dapat terpilih, maka atribut '''id''' pada elemen harus sama persis dengan yang ada di selector.<ref>[https://developer.mozilla.org/en-US/docs/Web/CSS/ID_selectors ID selectors - CSS: Cascading Style Sheets MDN]. ''developer.mozilla.org''.</ref> Contohnya adalah sebagai berikut:<syntaxhighlight lang="html" line="1"> | ||
<!DOCTYPE html> | |||
<html> | |||
<head> | |||
<title>Page Title</title> | |||
<style> | |||
#contoh { | |||
border: black 1px solid; | |||
border-radius: 16px; | |||
} | |||
</style> | |||
</head> | |||
<body> | |||
<p id="contoh">ini adalah contoh kalimat.</p> | |||
</body> | |||
</html> | |||
</syntaxhighlight> | |||
=== Class Selector === | === Class Selector === | ||
''Class selector'' menetapkan target elemen berdasarkan nilai atribut class yang diterapkan pada elemennya. Mirip seperti ''ID Selector,'' untuk menerapkan ''class selector'' maka atribut '''class''' pada elemen harus sesuai dengan yang ada di selector. Contohnya adalah sebagai berikut: | ''Class selector'' menetapkan target elemen berdasarkan nilai atribut class yang diterapkan pada elemennya. Mirip seperti ''ID Selector,'' untuk menerapkan ''class selector'' maka atribut '''class''' pada elemen harus sesuai dengan yang ada di selector.<ref>[https://www.w3schools.com/cssref/sel_class.asp CSS .class Selector]. ''www.w3schools.com''.</ref> Contohnya adalah sebagai berikut:<syntaxhighlight lang="html" line="1"> | ||
<!DOCTYPE html> | |||
<html> | |||
<head> | |||
<title>Page Title</title> | |||
<style> | |||
.contoh { | |||
border: black 1px solid; | |||
border-radius: 16px; | |||
} | |||
</style> | |||
</head> | |||
<body> | |||
<p class="contoh">ini adalah contoh kalimat.</p> | |||
</body> | |||
</html> | |||
</syntaxhighlight> | |||
Meskipun class selector dan ID selector sama-sama bisa menerapkan gaya untuk semua elemen dengan kelas dan ID yang sama, namun penerapan gaya CSS untuk semua elemen dalam satu ID yang sama tidak termasuk dalam praktik terbaik W3C. | Meskipun class selector dan ID selector sama-sama bisa menerapkan gaya untuk semua elemen dengan kelas dan ID yang sama, namun penerapan gaya CSS untuk semua elemen dalam satu ID yang sama tidak termasuk dalam praktik terbaik W3C. | ||
=== Grouping Selector pada CSS === | === Grouping Selector pada CSS === | ||
''Grouping selector'' pada CSS merupakan cara penulisan CSS yang mana ketika ''selector'' CSS memiliki ''property'' yang sama dapat dikelompokkan dengan ''selector'' lainnya. Contohnya adalah sebagai berikut:Kode CSS di atas akan lebih baik dikelompokkan seperti di bawah ini, dengan tujuan untuk meminimalisasi penulisan kode yang sama berulang. | ''Grouping selector'' pada CSS merupakan cara penulisan CSS yang mana ketika ''selector'' CSS memiliki ''property'' yang sama dapat dikelompokkan dengan ''selector'' lainnya. Contohnya adalah sebagai berikut:<syntaxhighlight lang="css" line="1"> | ||
h1 { | |||
color: red; | |||
} | |||
h2{ | |||
color: red; | |||
} | |||
p{ | |||
color: red; | |||
} | |||
/* ini adalah class selector */ | |||
.text{ | |||
color: red; | |||
} | |||
</syntaxhighlight>Kode CSS di atas akan lebih baik dikelompokkan seperti di bawah ini, dengan tujuan untuk meminimalisasi penulisan kode yang sama berulang.<ref>[https://www.w3schools.com/css/css_selectors.asp#:~:text=To%20group%20selectors,%20separate%20each%20selector%20with%20a%20comma. CSS Selectors]. ''www.w3schools.com''.</ref><syntaxhighlight lang="css" line="1"> | |||
h1, h2, p, .text { | |||
color: red; | |||
} | |||
</syntaxhighlight> | |||
=== Descendant Selector === | === Descendant Selector === | ||
''Descendant selector'' merupakan cara penulisan CSS dengan memanggil semua elemen yang merupakan turunan dari elemen tertentu. | ''Descendant selector'' merupakan cara penulisan CSS dengan memanggil semua elemen yang merupakan turunan dari elemen tertentu. <ref>[https://developer.mozilla.org/en-US/docs/Web/CSS/Descendant_combinator Descendant Combinator - CSS: Cascading Style Sheets MDN]. ''developer.mozilla.org''.</ref><syntaxhighlight lang="css" line="1"> | ||
/* Memanggil elemen <p> di dalam elemen */ | |||
div p { | |||
font-size: 12px; | |||
} | |||
</syntaxhighlight> | |||
=== Child Selector === | === Child Selector === | ||
''Child selector'' merupakan cara penulisan CSS dengan memilih semua elemen yang merupakan anak langsung dari elemen tertentu. | ''Child selector'' merupakan cara penulisan CSS dengan memilih semua elemen yang merupakan anak langsung dari elemen tertentu. <ref>[https://developer.mozilla.org/en-US/docs/Web/CSS/Child_combinator Child Combinator - CSS: Cascading Style Sheets MDN]. ''developer.mozilla.org''.</ref> | ||
Contoh: | Contoh: | ||
<syntaxhighlight lang="html" line="1"> | |||
<!DOCTYPE html> | |||
<html> | |||
<head> | |||
<title>Page Title</title> | |||
<style> | |||
div > p { | |||
font-size: 12px; | |||
} | |||
</style> | |||
</head> | |||
<body> | |||
<p> Teks 1 di dalam div. </p> | |||
<p> Teks 2 di dalam div.</p> | |||
<p> Teks 3 di section tetapi merupakan turunan dari div </p> | |||
<p> Teks 4 di dalam div </p> | |||
<p>Teks 5 tidak di dalam div.</p> | |||
</body> | |||
</html> | |||
</syntaxhighlight> | |||
Ini akan menghasilkan teks yang berada langsung di elemen <code><nowiki></nowiki></code> akan dirender dengan font berukuran 12 px, sedangkan teks yang tidak berada di dalam elemen <code><nowiki></nowiki></code> atau berada di elemen lain tetapi merupakan turunan dari elemen <code><nowiki></nowiki></code>, tetap memiliki ukuran font yang normal. | Ini akan menghasilkan teks yang berada langsung di elemen <code><nowiki></nowiki></code> akan dirender dengan font berukuran 12 px, sedangkan teks yang tidak berada di dalam elemen <code><nowiki></nowiki></code> atau berada di elemen lain tetapi merupakan turunan dari elemen <code><nowiki></nowiki></code>, tetap memiliki ukuran font yang normal. | ||
== Dukungan dari peramban web == | == Dukungan dari peramban web == | ||
Masing-masing peramban web menggunakan [[mesin tata letak]] yang berbeda. Contohnya [[Firefox]] menggunakan [[Gecko]] sebagai mesin tata letaknya dan Chromium menggunakan [[Blink (mesin browser)|Blink]] sebagai mesin tata letaknya. Dukungan untuk fitur CSS dari setiap mesin tata letak terkadang sering tidak konsisten. Beberapa teknik pun bermunculan untuk menggunakan suatu fitur CSS ke peramban web yang tidak mendukung fitur tersebut (biasa disebut ''CSS hack''). Adopsi fitur CSS baru dapat terhambat oleh kurangnya dukungan dari peramban-peramban web besar. Contohnya fitur <code>cross-fade()</code> telah didukung oleh Chrome dan Safari tetapi sampai tahun 2021 masih belum didukung oleh Firefox. | Masing-masing peramban web menggunakan [[mesin tata letak]] yang berbeda. Contohnya [[Firefox]] menggunakan [[Gecko]] sebagai mesin tata letaknya dan Chromium menggunakan [[Blink (mesin browser)|Blink]] sebagai mesin tata letaknya. Dukungan untuk fitur CSS dari setiap mesin tata letak terkadang sering tidak konsisten. Beberapa teknik pun bermunculan untuk menggunakan suatu fitur CSS ke peramban web yang tidak mendukung fitur tersebut (biasa disebut ''CSS hack''). Adopsi fitur CSS baru dapat terhambat oleh kurangnya dukungan dari peramban-peramban web besar. Contohnya fitur <code>cross-fade()</code> telah didukung oleh Chrome dan Safari tetapi sampai tahun 2021 masih belum didukung oleh Firefox.<ref>[https://caniuse.com/?search=cross%20fade Can I use... Support tables for HTML5, CSS3, etc]. ''caniuse.com''.</ref> | ||
Beberapa pengembang web biasanya memeriksa terlebih dahulu dukungan untuk suatu fitur CSS, terutama untuk fitur CSS baru. Beberapa situs web berikut dapat membantu seperti [https://caniuse.com CanIUse] dan [https://developer.mozilla.org Mozilla Developer Network]. CSS 3 memiliki fitur kueri, yang memberikan arahan <code>@supports</code> yang akan memungkinkan pengembang menargetkan peramban web dengan dukungan untuk fungsionalitas tertentu langsung di dalam CSS mereka. CSS yang tidak didukung oleh suatu peramban web kadang-kadang bisa ditambal menggunakan [[polyfill]], yang merupakan potongan kode [[JavaScript]] yang dirancang untuk memberikan dukungan untuk peramban web terhadap suatu fitur yang sebelumnya tidak didukung. Solusi ini dapat menambah kerumitan pada proyek pengembangan, dan akibatnya, perusahaan sering kali menentukan daftar versi peramban web yang akan dan tidak akan mereka dukung. | Beberapa pengembang web biasanya memeriksa terlebih dahulu dukungan untuk suatu fitur CSS, terutama untuk fitur CSS baru. Beberapa situs web berikut dapat membantu seperti [https://caniuse.com CanIUse] dan [https://developer.mozilla.org Mozilla Developer Network]. CSS 3 memiliki fitur kueri, yang memberikan arahan <code>@supports</code> yang akan memungkinkan pengembang menargetkan peramban web dengan dukungan untuk fungsionalitas tertentu langsung di dalam CSS mereka.<ref>[https://hacks.mozilla.org/2016/08/using-feature-queries-in-css Using Feature Queries in CSS – Mozilla Hacks - the Web developer blog]. ''Mozilla Hacks – the Web developer blog''.</ref> CSS yang tidak didukung oleh suatu peramban web kadang-kadang bisa ditambal menggunakan [[polyfill]], yang merupakan potongan kode [[JavaScript]] yang dirancang untuk memberikan dukungan untuk peramban web terhadap suatu fitur yang sebelumnya tidak didukung. Solusi ini dapat menambah kerumitan pada proyek pengembangan, dan akibatnya, perusahaan sering kali menentukan daftar versi peramban web yang akan dan tidak akan mereka dukung. | ||
== Penggunaan CSS dalam perangkat lunak lain == | == Penggunaan CSS dalam perangkat lunak lain == | ||
CSS dahulunya dibuat hanya untuk mempercantik halaman web. Namun, seiring perkembangan waktu CSS mulai diadopsi oleh [[perangkat lunak]] lain. | CSS dahulunya dibuat hanya untuk mempercantik halaman web. Namun, seiring perkembangan waktu CSS mulai diadopsi oleh [[perangkat lunak]] lain. | ||
[[GTK]] adalah peralatan gawit [[lintas platform]] yang menggunakan CSS untuk memberi gaya pada setiap widget. GTK sering digunakan untuk membuat program [[Linux]]. GTK memperkenalkan API Tema baru dengan menggunakan CSS pada pembaruan besar GTK versi 3. | [[GTK]] adalah peralatan gawit [[lintas platform]] yang menggunakan CSS untuk memberi gaya pada setiap widget. GTK sering digunakan untuk membuat program [[Linux]]. GTK memperkenalkan API Tema baru dengan menggunakan CSS pada pembaruan besar GTK versi 3.<ref>[https://blog.gtk.org/2011/02/ February 2011 – GTK Development Blog].</ref> | ||
[[Qt]] merupakan toolkit widget dan biasa dipakai untuk membuat aplikasi lintas platform. Qt juga menggunakan CSS untuk mengkonfigurasi tema. | [[Qt]] merupakan toolkit widget dan biasa dipakai untuk membuat aplikasi lintas platform. Qt juga menggunakan CSS untuk mengkonfigurasi tema. | ||
== Contoh berkas == | == Contoh berkas == | ||
<syntaxhighlight lang="css"> | |||
/* Kode berikut didedikasikan ke ruang publik (public domain) | |||
Silahkan untuk menggunakan, menyalin, dan mendistribusikan kode berikut */ | |||
body { | |||
background-color: yellow; | |||
} | |||
p { | |||
color: red; | |||
} | |||
</syntaxhighlight> | |||
Kode diatas akan mengganti warna halaman menjadi kuning dan membuat warna paragraf menjadi berwarna merah. | Kode diatas akan mengganti warna halaman menjadi kuning dan membuat warna paragraf menjadi berwarna merah. | ||
== CSS Preprocessor == | == CSS Preprocessor == | ||
''CSS preprocessor'' (pra pengolahan) adalah bahasa script atau program yang memungkinkan pengguna menulis kode CSS sesuai dengan [[sintaksis]] (''syntax) prepocessor'' itu sendiri. | ''CSS preprocessor'' (pra pengolahan) adalah bahasa script atau program yang memungkinkan pengguna menulis kode CSS sesuai dengan [[sintaksis]] (''syntax) prepocessor'' itu sendiri.<ref>[https://developer.mozilla.org/en-US/docs/Glossary/CSS_preprocessor CSS preprocessor - MDN Web Docs Glossary: Definitions of Web-related terms MDN]. ''developer.mozilla.org''.</ref> | ||
Ada banyak jenis CSS ''preprocessor'' yang dapat digunakan, namun sebagain besar CSS ''preprocessor'' memiliki beberapa fitur yang tidak ada dalam ''vanilla'' CSS (CSS murni). Beberapa fitur tersebut di antaranya yaitu penulisan variabel, ''nesting'', ''mixins'', ''extends'', ''color operations'', ''if/else statement'', ''loops'', dan lain sebagainya. Fitur-fitur tersebut membuat penulisan kode CSS menjadi lebih mudah dibaca dan lebih mudah dirawat, | Ada banyak jenis CSS ''preprocessor'' yang dapat digunakan, namun sebagain besar CSS ''preprocessor'' memiliki beberapa fitur yang tidak ada dalam ''vanilla'' CSS (CSS murni). Beberapa fitur tersebut di antaranya yaitu penulisan variabel, ''nesting'', ''mixins'', ''extends'', ''color operations'', ''if/else statement'', ''loops'', dan lain sebagainya. Fitur-fitur tersebut membuat penulisan kode CSS menjadi lebih mudah dibaca dan lebih mudah dirawat,<ref>[https://www.freecodecamp.org/news/css-preprocessors/ CSS Preprocessors Explained]. ''freeCodeCamp.org''. 2020-01-17.</ref> | ||
Berikut adalah beberapa CSS ''preprocessor'' [[populer]] dan sering digunakan, yaitu : | Berikut adalah beberapa CSS ''preprocessor'' [[populer]] dan sering digunakan, yaitu :<ref>[https://developer.mozilla.org/en-US/docs/Glossary/CSS_preprocessor CSS preprocessor - MDN Web Docs Glossary: Definitions of Web-related terms MDN]. ''developer.mozilla.org''.</ref> | ||
* [[Sass]] | * [[Sass]] | ||
| Baris 142: | Baris 364: | ||
Salah satu fitur yang dimiliki ''CSS preprocessor'' dan sering digunakan yaitu penulisan variabel. Dengan menuliskan variabel, kode yang dituliskan dapat digunakan digunakan kembali (''reusable''). Sehingga proses pengembangan suatu web dapat lebih cepat dan mudah. | Salah satu fitur yang dimiliki ''CSS preprocessor'' dan sering digunakan yaitu penulisan variabel. Dengan menuliskan variabel, kode yang dituliskan dapat digunakan digunakan kembali (''reusable''). Sehingga proses pengembangan suatu web dapat lebih cepat dan mudah. | ||
Berikut adalah contoh penulisan variabel dalam ''CSS preprocessor:'' | Berikut adalah contoh penulisan variabel dalam ''CSS preprocessor:''<ref>[https://lesscss.org/#variables Getting started Less.js]. ''lesscss.org''.</ref><ref>[https://sass-lang.com/documentation/variables Sass: Variables]. ''sass-lang.com''.</ref> | ||
==== Sass/SCSS ==== | ==== Sass/SCSS ==== | ||
<syntaxhighlight lang="sass" line="1"> | |||
// Penulisan SCSS preprocessor | |||
$base-color: #c6538c; | |||
$border-dark: rgba($base-color, 0.88); | |||
.box { | |||
border: 1px solid $border-dark; | |||
} | |||
</syntaxhighlight> | |||
==== Less CSS ==== | ==== Less CSS ==== | ||
<syntaxhighlight lang="less" line="1"> | |||
// Penulisan Less preprocessor | |||
@width: 10px; | |||
@height: @width + 10px; | |||
#header { | |||
width: @width; | |||
height: @height; | |||
} | |||
</syntaxhighlight> | |||
==== Stylus ==== | ==== Stylus ==== | ||
<syntaxhighlight lang="css" line="1"> | |||
// Penulisan STYLUS preprocessor | |||
font-size = 1em | |||
div | |||
font-size font-size | |||
</syntaxhighlight> | |||
=== Nesting === | === Nesting === | ||
Dengan menggunakan fitur ''nesting,'' pengguna dapat menuliskan ''selector'' di dalam ''selector'' (bersarang). Contoh penulisannya adalah sebagai berikut: | Dengan menggunakan fitur ''nesting,'' pengguna dapat menuliskan ''selector'' di dalam ''selector'' (bersarang). Contoh penulisannya adalah sebagai berikut:<ref>[https://www.w3schools.com/sass/sass_nesting.php Sass Nesting]. ''www.w3schools.com''.</ref><ref>[https://lesscss.org/#nesting Getting started Less.js]. ''lesscss.org''.</ref> | ||
==== Sass/SCSS ==== | ==== Sass/SCSS ==== | ||
<syntaxhighlight lang="sass" line="1"> | |||
// Penulisan SCSS preprocessor | |||
nav { | |||
ul { | |||
margin: 0; | |||
padding: 0; | |||
list-style: none; | |||
} | |||
li { | |||
display: inline-block; | |||
} | |||
a { | |||
display: block; | |||
padding: 6px 12px; | |||
text-decoration: none; | |||
} | |||
} | |||
</syntaxhighlight> | |||
==== Less CSS ==== | ==== Less CSS ==== | ||
<syntaxhighlight lang="sass" line="1"> | |||
// Penulisan Less preprocessor | |||
nav { | |||
ul { | |||
margin: 0; | |||
padding: 0; | |||
list-style: none; | |||
} | |||
li { | |||
display: inline-block; | |||
} | |||
a { | |||
display: block; | |||
padding: 6px 12px; | |||
text-decoration: none; | |||
} | |||
} | |||
</syntaxhighlight> | |||
==== Stylus ==== | ==== Stylus ==== | ||
<syntaxhighlight lang="css" line="1"> | |||
nav | |||
ul | |||
margin: 0; | |||
padding: 0; | |||
list-style: none; | |||
li | |||
display: inline-block; | |||
a | |||
display: block; | |||
padding: 6px 12px; | |||
text-decoration: none; | |||
</syntaxhighlight> | |||
==== CSS ==== | ==== CSS ==== | ||
<syntaxhighlight lang="css" line="1"> | |||
/* Apabila ditulis dengan kode vanilla CSS atau CSS polos, maka hasilnya adalah sebagai berikut */ | |||
nav ul { | |||
margin: 0; | |||
padding: 0; | |||
list-style: none; | |||
} | |||
nav li { | |||
display: inline-block; | |||
} | |||
nav a { | |||
display: block; | |||
padding: 6px 12px; | |||
text-decoration: none; | |||
} | |||
</syntaxhighlight> | |||
== Lihat pula == | == Lihat pula == | ||
* [[Bootstrap (kerangka kerja)]] | * [[Bootstrap (kerangka kerja)]] | ||
* [[Tailwind CSS]] | * [[Tailwind CSS]] | ||
* Bulma | * Bulma | ||
== Pranala luar == | == Pranala luar == | ||
* [http://www.w3.org/TR/CSS1 Spesifikasi CSS 1.0] | * [http://www.w3.org/TR/CSS1 Spesifikasi CSS 1.0] | ||
* [http://www.w3.org/TR/CSS21 Spesifikasi CSS 2.1] | * [http://www.w3.org/TR/CSS21 Spesifikasi CSS 2.1] | ||
| Baris 185: | Baris 488: | ||
* [http://w3schools.com/cssref/default.asp Referensi CSS] | * [http://w3schools.com/cssref/default.asp Referensi CSS] | ||
== Referensi == | |||
<references /> | |||
== Sumber dan atribusi == | |||
== | Konten artikel ini diadaptasi dari [https://id.wikipedia.org/w/index.php?title=CSS&oldid=29029470 Wikipedia bahasa Indonesia], revisi 29029470 (2026-03-12T09:44:37Z), yang tersedia berdasarkan lisensi Creative Commons Atribusi-BerbagiSerupa (CC BY-SA). Gambar pada artikel ini bersumber dari Wikimedia Commons dan mengikuti ketentuan lisensi masing-masing berkas. Mohon gunakan konten dan media secara bijak serta sesuai dengan ketentuan lisensi yang berlaku. | ||
<!-- WIKI_UNISSULA_PRESENTATION_V4 --> | |||
Revisi terkini sejak 23 Agustus 2026 04.15

Cascading Style Sheet (disingkat CSS) adalah bahasa lembar gaya yang digunakan sebagai penentu presentasi dan gaya dokumen yang ditulis dalam bahasa markup seperti HTML dan XML. CSS termasuk ke dalam teknologi dasar World Wide Web, bersama dengan HTML dan JavaScript.
Nama cascading berasal dari skema prioritas yang ditetapkan untuk menentukan deklarasi mana yang berlaku jika lebih dari satu deklarasi properti cocok dengan elemen tertentu. Skema prioritas cascading ini dapat diprediksi.
Sama halnya styles dalam aplikasi pengolahan kata seperti Microsoft Word yang dapat mengatur beberapa style, misalnya heading, subbab, bodytext, footer, images, dan style lainnya untuk digunakan secara bersamaan dalam beberapa berkas (file).[1] Pada umumnya CSS digunakan untuk memformat tampilan halaman web yang dibuat dengan bahasa HTML dan XHTML.[2]
CSS dapat mengendalikan ukuran gambar, warna bagian tubuh pada teks, warna tabel, ukuran border, warna border, warna hyperlink, warna mouse over, spasi antar paragraf, spasi antar teks, margin kiri, kanan, atas, bawah, dan parameter lainnya.[3] CSS adalah bahasa style sheet yang digunakan untuk mengatur tampilan dokumen.[4]
Sejarah
Nama CSS didapat dari fakta bahwa setiap deklarasi style yang berbeda dapat diletakkan secara berurutan, yang kemudian membentuk hubungan ayah-anak (parent-child) pada setiap style.[5] CSS sendiri merupakan sebuah teknologi internet yang direkomendasikan oleh World Wide Web Consortium atau W3C pada tahun 1996.[6] Setelah CSS distandardisasikan, Internet Explorer dan Netscape melepas browser terbaru mereka yang telah sesuai atau paling tidak hampir mendekati dengan standar CSS.[7]
Untuk saat ini terdapat tiga versi CSS, yaitu CSS1, CSS2, dan CSS3. CSS1 dikembangkan berpusat pada pemformatan dokumen HTML, CSS2 dikembangkan untuk memenuhi kebutuhan terhadap format dokumen agar bisa ditampilkan di printer, sedangkan CSS3 adalah versi terbaru dari CSS yang mampu melakukan banyak hal dalam desain website. CSS3 mendukung penentuan posisi konten, downloadable, huruf font, tampilan pada tabel /table layout dan media tipe untuk printer. Kehadiran versi CSS yang ketiga diharapkan lebih baik dari versi pertama dan kedua.
CSS3 juga dapat melakukan animasi pada halaman website, di antaranya animasi warna hingga animasi 3D. Dengan CSS3 desainer lebih dimudahkan dalam hal kompatibilitas websitenya pada smartphone dengan dukungan fitur baru yakni media query. Selain itu, banyak fitur baru pada CSS3 seperti: multiple background, border-radius, drop-shadow, border-image, CSS Math, dan CSS Object Model.[8]
Penulisan
Saat masuk pada bagian CSS, sering dijumpai kode sebagai berikut: <syntaxhighlight lang="css"> body {
color: black;
}
</syntaxhighlight>
Bagian pertama sebelum tanda kurung kurawal '{}' disebut selector, sedangkan yang diapit oleh kurung kurawal disebut declaration yang terdiri dari dua unsur, yaitu property dan value. Selector dalam pernyataan di atas adalah body, color adalah properti, dan black adalah nilai.[9]
Selain itu, ada tiga metode penulisan atribut pada CSS, yaitu:[10]
Inline Style Sheet
CSS didefinisikan langsung pada tag HTML yang bersangkutan. Ini ditulis dengan menambahkan atribut style="..." dalam tag HTML tersebut.[11] Gaya hanya akan berlaku pada tag yang bersangkutan, dan tidak akan memengaruhi tag HTML yang lain.[12]
Contoh: <syntaxhighlight lang="html4strict" line="1"> <html>
<head>
<title>Contoh Bentuk Inline</title>
</head>
<body>
Ini adalah contoh tag P tanpa diformat menggunakan CSS
Tag P ini diformat dengan besar font 20 point
Tag P ini diformat dengan besar font 14 point, dan menggunakan warna merah
</body>
</html> </syntaxhighlight>
Internal CSS
CSS didefinisikan terlebih dahulu dalam tag <style> ... </style> di dalam tag <head>.[13][14] Pada pendefinisian ini disebutkan atribut-atribut CSS yang akan digunakan untuk tag-tag HTML, yang selanjutnya dapat digunakan oleh tag HTML yang bersangkutan.
Contoh: <syntaxhighlight lang="html5" line="1"> <html>
<head>
<title>Contoh Bentuk Embedded</title>
<style>
body {
background: #0000FF;
color: #FFFF00;
margin-left: 0.5in;
}
h1 {
font-size: 18pt;
color: #FF0000;
}
p {
font-size: 12pt;
font-family: Arial;
text-indent: 0.5in;
}
</style>
</head>
<body>
Judul ini berukuran 18 dengan warna merah!
Tag p ini di format dengan besar font 12 point dengan tipe font Arial dan mempunyai indntasi 0.5 inci
Yang perlu diperhatikan juga bahwa body disini telah diformat dengan margin kiri 0.5 inch dan warna background biru
</body>
</html> </syntaxhighlight>
External CSS
CSS didefinisikan dengan disimpan di berkas yang berbeda. Ini dapat digunakan di semua berkas HTML sehingga memudahkan seorang pengembang web untuk mengembangkan situs web miliknya.
<syntaxhighlight lang="html"><link href="lokasiberkas.css" rel="stylesheet"></syntaxhighlight>
Shorthand CSS
Beberapa properti CSS dapat disingkat dengan metode shorthand CSS. Ini dilakukan dengan cara mempersingkat penulisan kode CSS yang memungkinkan untuk menetapkan nilai beberapa property secara bersamaan, sehingga kode yang ditulis lebih ringkas.
Dalam CSS, wajar jika satu properti memiliki banyak elemen; misalnya dalam properti margin yang memiliki 4 properti untuk setiap sisi elemen, yaitu:
- margin-top
- margin-right
- margin-bottom
- margin-left
Saat ini metode penulisan shorthand CSS tersedia untuk beberapa properti berikut:
- Margin
- Padding
- Font
- Background
- Border
- List
Margin
<syntaxhighlight lang="css"> margin: 3px 5px 7px 10px; </syntaxhighlight>Artinya:<syntaxhighlight lang="css"> margin-top: 3px; margin-right: 5px; margin-bottom: 7px; margin-left: 10px; </syntaxhighlight>
Padding
<syntaxhighlight lang="css"> padding: 3px 5px 7px 10px; </syntaxhighlight>Artinya:<syntaxhighlight lang="css"> padding-top: 3px; padding-right: 5px; padding-bottom: 7px; padding-left: 10px; </syntaxhighlight>
Font
<syntaxhighlight lang="css"> font: italic bold 14px/30px Arial; </syntaxhighlight>Artinya:<syntaxhighlight lang="css"> font-style: italic; font-weight: bold; font-size: 14px; line-height: 30px; font-family: Arial; </syntaxhighlight>
Background
<syntaxhighlight lang="css"> background: #cc0000 url('igniel.jpg') no-repeat top center; </syntaxhighlight>Artinya:<syntaxhighlight lang="css"> background-color: #cc0000; background-image: url('igniel.jpg'); background-repeat: no-repeat; background-position: top center; </syntaxhighlight>
Border
<syntaxhighlight lang="css"> border: 3px solid #0000cc; </syntaxhighlight>Artinya:<syntaxhighlight lang="css"> border-width: 5px; border-style: solid; border-color: #0000cc; </syntaxhighlight>
List
<syntaxhighlight lang="css"> list-style: disc inside url('dot.gif'); </syntaxhighlight>Artinya:<syntaxhighlight lang="css"> list-style-type: disc; list-style-position: inside; list-style-image: url('dot.gif'); </syntaxhighlight>
Penulisan komentar pada CSS
<syntaxhighlight lang="css" line="1"> h1 {
/* ini adalah komentar untuk satu baris */ color: red;
}
p {
/* ini juga adalah komentar untuk dua baris atau lebih. seluruh teks yang berada pada pembuka dan penutup sebuah komentar akan diabaikan oleh browser sebagai compiler. */ color: red;
} </syntaxhighlight>
CSS Selector
Universal Selector
Universal selector digunakan untuk diterapkan pada seluruh elemen.[15]<syntaxhighlight lang="css" line="1"> /* diterapkan pada seluruh elemen */
- {
color: green;
} </syntaxhighlight>
Type Selector
Type selector merupakan cara penulisan CSS dengan nama elemen sebagai target untuk diterapkannya rule. Ketika menggunakan selector ini, maka rule akan diterapkan pada seluruh elemen target yang ada pada dokumen HTML.[16]<syntaxhighlight lang="css" line="1"> /* akan diterapkan pada seluruh elemen <a>*/ a {
color: blue;
} </syntaxhighlight>
ID Selector
ID selector menetapkan target elemen berdasarkan nilai dari atribut id yang diterapkan pada elemennya. Agar elemen dapat terpilih, maka atribut id pada elemen harus sama persis dengan yang ada di selector.[17] Contohnya adalah sebagai berikut:<syntaxhighlight lang="html" line="1"> <!DOCTYPE html> <html>
<head>
<title>Page Title</title>
<style>
#contoh {
border: black 1px solid;
border-radius: 16px;
}
</style>
</head>
<body>
ini adalah contoh kalimat.
</body>
</html> </syntaxhighlight>
Class Selector
Class selector menetapkan target elemen berdasarkan nilai atribut class yang diterapkan pada elemennya. Mirip seperti ID Selector, untuk menerapkan class selector maka atribut class pada elemen harus sesuai dengan yang ada di selector.[18] Contohnya adalah sebagai berikut:<syntaxhighlight lang="html" line="1"> <!DOCTYPE html> <html>
<head>
<title>Page Title</title>
<style>
.contoh {
border: black 1px solid;
border-radius: 16px;
}
</style>
</head>
<body>
ini adalah contoh kalimat.
</body>
</html> </syntaxhighlight>
Meskipun class selector dan ID selector sama-sama bisa menerapkan gaya untuk semua elemen dengan kelas dan ID yang sama, namun penerapan gaya CSS untuk semua elemen dalam satu ID yang sama tidak termasuk dalam praktik terbaik W3C.
Grouping Selector pada CSS
Grouping selector pada CSS merupakan cara penulisan CSS yang mana ketika selector CSS memiliki property yang sama dapat dikelompokkan dengan selector lainnya. Contohnya adalah sebagai berikut:<syntaxhighlight lang="css" line="1"> h1 {
color: red;
}
h2{
color: red;
}
p{
color: red;
}
/* ini adalah class selector */ .text{
color: red;
} </syntaxhighlight>Kode CSS di atas akan lebih baik dikelompokkan seperti di bawah ini, dengan tujuan untuk meminimalisasi penulisan kode yang sama berulang.[19]<syntaxhighlight lang="css" line="1"> h1, h2, p, .text {
color: red;
} </syntaxhighlight>
Descendant Selector
Descendant selector merupakan cara penulisan CSS dengan memanggil semua elemen yang merupakan turunan dari elemen tertentu. [20]<syntaxhighlight lang="css" line="1">
/* Memanggil elemen
di dalam elemen */ div p { font-size: 12px; } </syntaxhighlight>
Child Selector
Child selector merupakan cara penulisan CSS dengan memilih semua elemen yang merupakan anak langsung dari elemen tertentu. [21]
Contoh: <syntaxhighlight lang="html" line="1"> <!DOCTYPE html> <html> <head>
<title>Page Title</title>
<style>
div > p {
font-size: 12px;
}
</style>
</head> <body>
Teks 1 di dalam div.
Teks 2 di dalam div.
Teks 3 di section tetapi merupakan turunan dari div
Teks 4 di dalam div
Teks 5 tidak di dalam div.
</body> </html> </syntaxhighlight>
Ini akan menghasilkan teks yang berada langsung di elemen akan dirender dengan font berukuran 12 px, sedangkan teks yang tidak berada di dalam elemen atau berada di elemen lain tetapi merupakan turunan dari elemen , tetap memiliki ukuran font yang normal.
Dukungan dari peramban web
Masing-masing peramban web menggunakan mesin tata letak yang berbeda. Contohnya Firefox menggunakan Gecko sebagai mesin tata letaknya dan Chromium menggunakan Blink sebagai mesin tata letaknya. Dukungan untuk fitur CSS dari setiap mesin tata letak terkadang sering tidak konsisten. Beberapa teknik pun bermunculan untuk menggunakan suatu fitur CSS ke peramban web yang tidak mendukung fitur tersebut (biasa disebut CSS hack). Adopsi fitur CSS baru dapat terhambat oleh kurangnya dukungan dari peramban-peramban web besar. Contohnya fitur cross-fade() telah didukung oleh Chrome dan Safari tetapi sampai tahun 2021 masih belum didukung oleh Firefox.[22]
Beberapa pengembang web biasanya memeriksa terlebih dahulu dukungan untuk suatu fitur CSS, terutama untuk fitur CSS baru. Beberapa situs web berikut dapat membantu seperti CanIUse dan Mozilla Developer Network. CSS 3 memiliki fitur kueri, yang memberikan arahan @supports yang akan memungkinkan pengembang menargetkan peramban web dengan dukungan untuk fungsionalitas tertentu langsung di dalam CSS mereka.[23] CSS yang tidak didukung oleh suatu peramban web kadang-kadang bisa ditambal menggunakan polyfill, yang merupakan potongan kode JavaScript yang dirancang untuk memberikan dukungan untuk peramban web terhadap suatu fitur yang sebelumnya tidak didukung. Solusi ini dapat menambah kerumitan pada proyek pengembangan, dan akibatnya, perusahaan sering kali menentukan daftar versi peramban web yang akan dan tidak akan mereka dukung.
Penggunaan CSS dalam perangkat lunak lain
CSS dahulunya dibuat hanya untuk mempercantik halaman web. Namun, seiring perkembangan waktu CSS mulai diadopsi oleh perangkat lunak lain.
GTK adalah peralatan gawit lintas platform yang menggunakan CSS untuk memberi gaya pada setiap widget. GTK sering digunakan untuk membuat program Linux. GTK memperkenalkan API Tema baru dengan menggunakan CSS pada pembaruan besar GTK versi 3.[24]
Qt merupakan toolkit widget dan biasa dipakai untuk membuat aplikasi lintas platform. Qt juga menggunakan CSS untuk mengkonfigurasi tema.
Contoh berkas
<syntaxhighlight lang="css"> /* Kode berikut didedikasikan ke ruang publik (public domain)
Silahkan untuk menggunakan, menyalin, dan mendistribusikan kode berikut */
body {
background-color: yellow;
} p {
color: red;
} </syntaxhighlight>
Kode diatas akan mengganti warna halaman menjadi kuning dan membuat warna paragraf menjadi berwarna merah.
CSS Preprocessor
CSS preprocessor (pra pengolahan) adalah bahasa script atau program yang memungkinkan pengguna menulis kode CSS sesuai dengan sintaksis (syntax) prepocessor itu sendiri.[25]
Ada banyak jenis CSS preprocessor yang dapat digunakan, namun sebagain besar CSS preprocessor memiliki beberapa fitur yang tidak ada dalam vanilla CSS (CSS murni). Beberapa fitur tersebut di antaranya yaitu penulisan variabel, nesting, mixins, extends, color operations, if/else statement, loops, dan lain sebagainya. Fitur-fitur tersebut membuat penulisan kode CSS menjadi lebih mudah dibaca dan lebih mudah dirawat,[26]
Berikut adalah beberapa CSS preprocessor populer dan sering digunakan, yaitu :[27]
Variabel
Salah satu fitur yang dimiliki CSS preprocessor dan sering digunakan yaitu penulisan variabel. Dengan menuliskan variabel, kode yang dituliskan dapat digunakan digunakan kembali (reusable). Sehingga proses pengembangan suatu web dapat lebih cepat dan mudah.
Berikut adalah contoh penulisan variabel dalam CSS preprocessor:[28][29]
Sass/SCSS
<syntaxhighlight lang="sass" line="1"> // Penulisan SCSS preprocessor $base-color: #c6538c; $border-dark: rgba($base-color, 0.88);
.box {
border: 1px solid $border-dark;
}
</syntaxhighlight>
Less CSS
<syntaxhighlight lang="less" line="1"> // Penulisan Less preprocessor @width: 10px; @height: @width + 10px;
- header {
width: @width; height: @height;
}
</syntaxhighlight>
Stylus
<syntaxhighlight lang="css" line="1"> // Penulisan STYLUS preprocessor font-size = 1em
div
font-size font-size
</syntaxhighlight>
Nesting
Dengan menggunakan fitur nesting, pengguna dapat menuliskan selector di dalam selector (bersarang). Contoh penulisannya adalah sebagai berikut:[30][31]
Sass/SCSS
<syntaxhighlight lang="sass" line="1"> // Penulisan SCSS preprocessor nav {
ul {
margin: 0;
padding: 0;
list-style: none;
}
li {
display: inline-block;
}
a {
display: block;
padding: 6px 12px;
text-decoration: none;
}
} </syntaxhighlight>
Less CSS
<syntaxhighlight lang="sass" line="1"> // Penulisan Less preprocessor nav {
ul {
margin: 0;
padding: 0;
list-style: none;
}
li {
display: inline-block;
}
a {
display: block;
padding: 6px 12px;
text-decoration: none;
}
} </syntaxhighlight>
Stylus
<syntaxhighlight lang="css" line="1"> nav
ul margin: 0; padding: 0; list-style: none; li display: inline-block; a display: block; padding: 6px 12px; text-decoration: none;
</syntaxhighlight>
CSS
<syntaxhighlight lang="css" line="1"> /* Apabila ditulis dengan kode vanilla CSS atau CSS polos, maka hasilnya adalah sebagai berikut */ nav ul {
margin: 0; padding: 0; list-style: none;
} nav li {
display: inline-block;
} nav a {
display: block; padding: 6px 12px; text-decoration: none;
} </syntaxhighlight>
Lihat pula
Pranala luar
- Spesifikasi CSS 1.0
- Spesifikasi CSS 2.1
- (Inggris) Spesifikasi CSS 2.2 (Preview)
- Tutorial CSS
- Referensi CSS
Referensi
- ↑ Slamet Riyanto, Membuat Web Portal Multi Bahasa Jomla 1.5X + CD, halaman 236. Elex Media Komputindo.
- ↑ Slamet Riyanto, Membuat Web Portal Multi Bahasa Jomla 1.5X + CD, halaman 236. Elex Media Komputindo.
- ↑ Slamet Riyanto, Membuat Web Portal Multi Bahasa Jomla 1.5X + CD, halaman 236. Elex Media Komputindo.
- ↑ Dominikus Juju & Matamaya Studio, Seri Penuntun Praktis Join Multiply, halaman 95. Elex Media Komputindo.
- ↑ Sulistyawan, Rubianto, Rahmad Saleh, Modifikasi Blog Multiply dengan CSS, halaman 32. Elex Media Komputindo.
- ↑ Dominikus Juju & Matamaya Studio, Seri Penuntun Praktis Join Multiply, halaman 95. Elex Media Komputindo.
- ↑ Sulistyawan, Rubianto, Rahmad Saleh, Modifikasi Blog Multiply dengan CSS, halaman 32. Elex Media Komputindo.
- ↑ CSS 3 Introduction. W3Schools.
- ↑ Untung Julianto, Modifikator Blogger + CD, halaman 22. Elex Media Komputindo.
- ↑ Untung Rahardja, Augury El Rayeb, & Asep Saefullah (2009). Siapa saja bisa membuat website dengan CSS dan HTML, halaman 37-41. Andi Yogyakarta.
- ↑ Untung Rahardja, Augury El Rayeb, & Asep Saefullah (2009). Siapa saja bisa membuat website dengan CSS dan HTML, halaman 37-41. Andi Yogyakarta.
- ↑ Untung Rahardja, Augury El Rayeb, & Asep Saefullah (2009). Siapa saja bisa membuat website dengan CSS dan HTML, halaman 37-41. Andi Yogyakarta.
- ↑ Untung Rahardja, Augury El Rayeb, & Asep Saefullah (2009). Siapa saja bisa membuat website dengan CSS dan HTML, halaman 37-41. Andi Yogyakarta.
- ↑ How CSS is structured - Learn web development MDN.
- ↑ Universal selectors - CSS: Cascading Style Sheets MDN. developer.mozilla.org.
- ↑ Type selectors - CSS: Cascading Style Sheets MDN. developer.mozilla.org.
- ↑ ID selectors - CSS: Cascading Style Sheets MDN. developer.mozilla.org.
- ↑ CSS .class Selector. www.w3schools.com.
- ↑ CSS Selectors. www.w3schools.com.
- ↑ Descendant Combinator - CSS: Cascading Style Sheets MDN. developer.mozilla.org.
- ↑ Child Combinator - CSS: Cascading Style Sheets MDN. developer.mozilla.org.
- ↑ Can I use... Support tables for HTML5, CSS3, etc. caniuse.com.
- ↑ Using Feature Queries in CSS – Mozilla Hacks - the Web developer blog. Mozilla Hacks – the Web developer blog.
- ↑ February 2011 – GTK Development Blog.
- ↑ CSS preprocessor - MDN Web Docs Glossary: Definitions of Web-related terms MDN. developer.mozilla.org.
- ↑ CSS Preprocessors Explained. freeCodeCamp.org. 2020-01-17.
- ↑ CSS preprocessor - MDN Web Docs Glossary: Definitions of Web-related terms MDN. developer.mozilla.org.
- ↑ Getting started Less.js. lesscss.org.
- ↑ Sass: Variables. sass-lang.com.
- ↑ Sass Nesting. www.w3schools.com.
- ↑ Getting started Less.js. lesscss.org.
Sumber dan atribusi
Konten artikel ini diadaptasi dari Wikipedia bahasa Indonesia, revisi 29029470 (2026-03-12T09:44:37Z), yang tersedia berdasarkan lisensi Creative Commons Atribusi-BerbagiSerupa (CC BY-SA). Gambar pada artikel ini bersumber dari Wikimedia Commons dan mengikuti ketentuan lisensi masing-masing berkas. Mohon gunakan konten dan media secara bijak serta sesuai dengan ketentuan lisensi yang berlaku.