Cascading Style Sheets: Perbedaan antara revisi

Konten dihapus Konten ditambahkan
Neko chan (bicara | kontrib)
Membalikkan revisi 26561507 oleh Lazawardi sidik (bicara) kalau mau menambah referensi jangan menggunakan subjudul ketiga karena sudah ada subjudulnya. Sebaiknya juga jangan menggunakan subjudul 4 karena terkesan tidak rapi
Tag: Pembatalan Suntingan perangkat seluler Suntingan peramban seluler Suntingan seluler lanjutan
 
(176 revisi perantara oleh 71 pengguna tidak ditampilkan)
Baris 1:
{{infoboxInfobox file format
| name = Cascading Style Sheets (CSS)
| extension = .css
| screenshoticon = [[Berkas:CSSCSS3 logo and wordmark.svg|160px100px]]
| icon_size = 120px
| mime = text/css
| iconcaption = Logo resmi versi terbaru, [[#CSS 3|CSS 3]]
| owner = [[World Wide Web Consortium]]
| screenshot = [[File:Пример кода на CSS.jpg|200px]]
| genre = [[Bahasa lembar gaya]]
| caption = Contoh dari [[kode sumber]] CSS
| standard = [http://www.w3.org/TR/CSS1 Level 1 (Recommendation)]{{br}}[http://www.w3.org/TR/CSS2/ Level 2 (Recommendation)]{{br}}[http://www.w3.org/TR/CSS21/ Level 2 Revision 1 (Candidate Recommendation)]
| mime = text/css
| uniform type = public.css
| developer = [[World Wide Web Consortium]] (W3C)
| owner =
| genre = [[Bahasa lembar gaya]]
| released = {{release date and age|1996|12|17|df=y}}
| latest_release_version = CSS 2.1 : Level 2 Revision 1
| latest_release_date = {{release date and age|2016|4|12|df=y}}
| container_for = Aturan gaya untuk [[elemen HTML]] (tag)
| contained_by = [[HTML|Dokumen HTML]]
| standard = [http://www.w3.org/TR/CSS1 Level 1 (Rekomendasi)]{{br}}[http://www.w3.org/TR/CSS2/ Level 2 (Rekomendasi)]{{br}}[http://www.w3.org/TR/CSS21/ Level 2 Revision 1 (Rekomendasi kandidat)]
| open = Yes
| url = {{URL|https://www.w3.org/TR/CSS/#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]].
 
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.
'''Cascading Style Sheet''' ('''CSS''') merupakan salah satu [[bahasa pemrograman]] [[web]] untuk mengendalikan beberapa komponen dalam sebuah web sehingga akan lebih terstruktur dan seragam.
 
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 dapat digunakan bersama-samasecara bersamaan dalam beberapa berkas (''[[file]]'').<ref name="Slamet">Slamet Riyanto, ''Membuat Web Portal Multi Bahasa Jomla 1.5X + CD'', halaman 236. Elex Media Komputindo.</ref> Pada umumnya CSS dipakaidigunakan untuk memformat tampilan halaman web yang dibuat dengan [[bahasa]] [[HTML]] dan [[XHTML]].<ref name="Slamet"/>
 
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 name="Slamet"/> CSS adalah bahasa [[Stylesheet|style sheet]] yang digunakan untuk mengatur tampilan dokumen.<ref name="dominikus">Dominikus Juju & Matamaya Studio, ''Seri Penuntun Praktis Join Multiply'', halaman 95. Elex Media Komputindo.</ref> Dengan adanya CSS memungkinkan kita untuk menampilkan halaman yang sama dengan format yang berbeda.<ref name="dominikus"/>
 
== Sejarah CSS ==
{{Update}}
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 name="SRR">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 name="dominikus"></ref> Setelah CSS distandarisasikan, [[Internet Explorer]] dan [[Netscape Navigator|Netscape]] melepas [[browser]] terbaru mereka yang telah sesuai atau paling tidak hampir mendekati dengan standar CSS.<ref name="SRR"/>
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 name="SRR">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 name="dominikus"/> Setelah CSS distandarisasikan, [[Internet Explorer]] dan [[Netscape Navigator|Netscape]] melepas [[browser]] terbaru mereka yang telah sesuai atau paling tidak hampir mendekati dengan standar CSS.<ref name="SRR"/>
 
Untuk saat ini terdapat tiga versi CSS, yaitu [[CSS 1|CSS1]], [[CSS 2|CSS2]], dan [[CSS 3|CSS3]].
== Versi ==
Untuk saat ini terdapat dua versi CSS, yaitu CSS1 dan CSS2.<ref name="dominikus"/> CSS 1 dikembangkan berpusat pada pemformatan dokumen [[HTML]], sedangkan CSS 2CSS2 dikembangkan untuk memenuhi kebutuhan terhadap format dokumen agar bisa ditampilkan di [[printer]].<ref, sedangkan CSS3 adalah versi terbaru dari CSS yang mampu name="dominikus"/>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.
 
[[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 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>{{cite web|url=http://w3schools.com/css3/css3_intro.asp|title=CSS 3 Introduction|publisher=W3Schools}}{{Pranala mati|date=Februari 2021 |bot=InternetArchiveBot |fix-attempted=yes }}</ref>
Selain itu CSS 2 mendukung penentuan posisi konten, ''downloadable'', huruf (''font''), tampilan pada tabel (''table layout'') dan media tipe untuk printer.<ref name="dominikus"/> Kehadiran versi CSS yang kedua diharapkan lebih baik dari versi [[pertama]].<ref name="dominikus"/>
 
== Penulisan ==
Saat masuk pada bagian CSS, sering dijumpai [[kode]] sebagai berikut:
<sourcesyntaxhighlight lang="css">
h1body {
color: #0789deblack;
}
</syntaxhighlight>
</source>
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 h1, <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 name="css_html"/>
Bagian pertama sebelum tanda '{}' dinamakan ''selector'', sedangkan yang diapit oleh '{}' disebut ''declaration'' yang terdiri dari ''dua'' unsur, yaitu ''property'' dan ''value''.<ref name="unt">Untung Julianto, ''Modifikator Blogger + CD'', halaman 22. Elex Media Komputindo.</ref>''Selector'' dalam pernyataan di atas adalah h1, sedangkan ''color'' adalah ''property'', dan #0789de adalah ''value''.<ref name="unt"/>
 
Selain itu ada tiga metode penulisan CSS atribut, yaitu :<ref name="css_html">Untung Rahardja, Augury El Rayeb, & Asep Saefullah (2009). ''Siapa saja bisa membuat website dengan CSS dan HTML'', halaman 37-41. Andi Yogyakarta.</ref>
=== Inline Style Sheet ===
CSS didefinisikan langsung pada tag HTML yang bersangkutan. CaraIni penulisannya cukupditulis dengan menambahkan atribut '''style="..."''' dalam tag HTML tersebut.<ref name="css_html">Untung Rahardja, Augury El Rayeb, & Asep Saefullah (2009). ''Siapa saja bisa membuat website dengan CSS dan HTML'', halaman 37-41. Andi Yogyakarta.</ref> StyleGaya hanya akan berlaku pada tag yang bersangkutan, dan tidak akan mempengaruhimemengaruhi tag HTML yang lain.<ref name="css_html" />
 
Contoh:
Contoh penulisan CSS dengan metode '''Inline Style Sheet''' <ref name="css_html"/>:
<sourcesyntaxhighlight lang="html4strict" line="1">
<html>
 
<head>
<title>Contoh Bentuk Inline</title>
</head>
<body bgcolor="#FFFFFF">
<p id="cth1">
Ini adalah contoh tag P tanpadiformat menggunakan CSS </p>
 
<body>
<p id="cth2" style="font-size:20pt">
<p id="cth1">
Tag P ini diformat dengan besar font 20 point </p>
Ini adalah contoh tag P tanpa diformat menggunakan CSS </p>
 
<p id="cth3cth2" style="font-size:14pt; color:red20pt">
Tag P ini diformat dengan besar font 1420 point, dan menggunakan warna merah </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>
</source>
 
=== EmbeddedInternal Style SheetCSS ===
CSS didefinisikan terlebih dahulu dalam tag '''<style> ... </style>''' di atasdalam tag '''<bodyhead>'''.<ref name="css_html" /><ref>{{Cite Pada pendefinisian ini disebutkan atribut-atributweb|title=How CSS yangis akanstructured digunakan untuk tag-tag HTML,Learn yangweb selanjutnyadevelopment dapat{{!}} digunakan oleh tag HTML yang bersangkutanMDN|url=https://developer.<ref namemozilla.org/en-US/docs/Learn/CSS/First_steps/How_CSS_is_structured|language="css_html"en-US|access-date=2024-09-23}}</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 penggunaan CSS dengan metode '''Embedded Style Sheet''' :<ref name="css_html"/>
<sourcesyntaxhighlight lang="html4stricthtml5" 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>
<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>
 
<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 identasiindntasi 0.5 inchinci
</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>
</source>
 
=== LinkedExternal Style SheetCSS ===
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.
Metode ini hampir sama dengan metode ''Embedded Style Sheet'', hanya saja pendefinisian tag '''<style> ... </style>''' dibuat pada berkas terpisah dari berkas HTML yang membutuhkan CSS.<ref name="css_html"/> Kemudian berkas lain tersebut disimpan dalam format '''.css'''.<ref name="css_html"/>
 
<syntaxhighlight lang="html"><link href="lokasiberkas.css" rel="stylesheet"></syntaxhighlight>
Pada berkas HTML yang akan menggunakan berkas CSS, harus dibuat tag '''<link>''' yang dituliskan di antara tag '''<head> ... </head>'''.<ref name="css_html"/>
 
=== Shorthand CSS ===
Contoh (simpan dengan nama '''contoh.css''') :<ref name="css_html"/>
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.
<source lang="html4strict">
<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>
</source>
 
Dalam CSS, wajar jika satu properti memiliki banyak elemen; misalnya dalam properti margin yang memiliki 4 properti untuk setiap sisi elemen, yaitu:
== Sifat CSS ==
Ada dua sifat CSS yaitu internal dan eksternal.<ref name="Jub">Jubilee Enterprise, ''Seri Penuntun Praktis : Trik Cepat Dreamweaver Cs3'', halaman 97. Elex Media Komputindo.</ref> Jika internal yang dipilih, maka [[script|skrip]] itu dimasukkan secara langsung ke halaman [[website]] yang akan didesain.<ref name="Jub"/> Kalau halaman web yang lain akan didesain dengan model yang sama, maka skrip CSS itu harus dimasukkan lagi ke dalam halaman web yang lain itu.<ref name="Jub"/>
 
# margin-top
Sifat yang kedua adalah eksternal di mana skrip CSS dipisahkan dan diletakkan dalam berkas khusus.<ref name="Jub"/> Nanti, cukup gunakan semacam tautan menuju berkas CSS itu jika halaman web yang didesain akan dibuat seperti [[model]] yang ada di skrip tersebut.<ref name="Jub"/>
# margin-right
# margin-bottom
# margin-left
 
Saat ini metode penulisan shorthand CSS tersedia untuk beberapa properti berikut:
== Fakta Menggunakan CSS ==
Fakta Menggunakan CSS diantaranya : <ref>Pupung Budi Purnama, ''Kiat Praktis Menjadi Desainer Web Profesional'', halaman 8. Elex Media Komputindo.</ref>
* Telah didukung oleh kebanyakan browser versi terbaru, tetapi tidak didukung oleh browser-browser lama.
* Lebih fleksibel dalam penempatan posisi layout. Dalam layouting CSS, kita mengenal Z-Index untuk menempatkan objek dalam posisi yang sama.
* Menjaga HTML dalam penggunaan [[tag]] yang minimal, hal ini berpengaruh terhadap ukuran berkas dan kecepatan pengunduhan.
* Dapat menampilkan konten utama terlebih dahulu, sementara gambar dapat ditampilkan sesudahnya.
* Penerjemahan CSS setiap browser berbeda, tata letak akan berubah jika dilihat di berbagai browser
* CSS adalah layouting "Masa Depan" dengan penggabungan bersama [[XHTML]].
 
# Margin
== Contoh Berkas CSS ==
# Padding
<ref>Situs W3C [http://www.w3schools.com/css/tryit.asp?filename=trycss_default Contoh CSS], Diakses pada 09 Mei 2010.</ref>
# Font
<source lang="html4strict">
# Background
<html>
# Border
<head>
# List
<style type="text/css">
 
body
==== Margin ====
{
<syntaxhighlight lang="css">
background-color:#d0e4fe;
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;
}
 
h1
p {
/*
color:orange;
ini juga adalah komentar untuk dua baris atau lebih.
text-align:center;
seluruh teks yang berada pada pembuka dan penutup sebuah komentar
akan diabaikan oleh browser sebagai compiler.
*/
color: red;
}
</syntaxhighlight>
p
 
{
== CSS Selector ==
font-family:"Times New Roman";
 
font-size:20px;
=== Universal Selector ===
''Universal selector'' digunakan untuk diterapkan pada seluruh elemen.<ref>{{Cite web|title=Universal selectors - CSS: Cascading Style Sheets {{!}} MDN|url=https://developer.mozilla.org/en-US/docs/Web/CSS/Universal_selectors|website=developer.mozilla.org|language=en-US|access-date=2022-09-11}}</ref><syntaxhighlight lang="css" line="1">
/* diterapkan pada seluruh elemen */
* {
color: green;
}
</syntaxhighlight>
</style>
 
=== 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.<ref>{{Cite web|title=Type selectors - CSS: Cascading Style Sheets {{!}} MDN|url=https://developer.mozilla.org/en-US/docs/Web/CSS/Type_selectors|website=developer.mozilla.org|language=en-US|access-date=2022-09-11}}</ref><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.<ref>{{Cite web|title=ID selectors - CSS: Cascading Style Sheets {{!}} MDN|url=https://developer.mozilla.org/en-US/docs/Web/CSS/ID_selectors|website=developer.mozilla.org|language=en-US|access-date=2022-09-11}}</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>
<!-- Elemen dengan id="contoh" -->
<p id="contoh">ini adalah contoh kalimat.</p>
</body>
 
</html>
<h1>CSS example!</h1>
</syntaxhighlight>
<p>This is a paragraph.</p>
 
=== 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.<ref>{{Cite web|title=CSS .class Selector|url=https://www.w3schools.com/cssref/sel_class.asp|website=www.w3schools.com|language=en-US|access-date=2022-09-11}}</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>
<!-- Elemen dengan class="contoh" -->
<p class="contoh">ini adalah contoh kalimat.</p>
</body>
 
</html>
</syntaxhighlight>
</source>
 
=== PranalaGrouping luarSelector 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{
{{wikibooks|Pemrograman CSS}}
color: red;
* {{en}} [http://www.w3.org/TR/CSS1 Spesifikasi CSS 1.0]
}
* {{en}} [http://www.w3.org/TR/CSS21 Spesifikasi CSS 2.1]
 
* {{en}} [http://www.w3schools.com/css/ Tutorial CSS]
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>{{Cite web|title=CSS Selectors|url=https://www.w3schools.com/css/css_selectors.asp#:~:text=To%20group%20selectors,%20separate%20each%20selector%20with%20a%20comma.|website=www.w3schools.com|language=en-US|access-date=2022-09-11}}</ref><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. <ref>{{Cite web|title=Descendant Combinator - CSS: Cascading Style Sheets {{!}} MDN|url=https://developer.mozilla.org/en-US/docs/Web/CSS/Descendant_combinator|website=developer.mozilla.org|language=en-US|access-date=2024-09-03}}</ref><syntaxhighlight lang="css" line="1">
/* Memanggil elemen <p> di dalam elemen <div> */
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. <ref>{{Cite web|title=Child Combinator - CSS: Cascading Style Sheets {{!}} MDN|url=https://developer.mozilla.org/en-US/docs/Web/CSS/Child_combinator|website=developer.mozilla.org|language=en-US|access-date=2024-09-03}}</ref>
 
Contoh:
<syntaxhighlight lang="html" line="1">
<!DOCTYPE html>
<html>
<head>
<title>Page Title</title>
<style>
div > p {
font-size: 12px;
}
</style>
</head>
<body>
<div>
<p> Teks 1 di dalam div. </p>
<p> Teks 2 di dalam div.</p>
<section>
<p> Teks 3 di section tetapi merupakan turunan dari div </p>
</section>
<p> Teks 4 di dalam div </p>
</div>
<p>Teks 5 tidak di dalam div.</p>
</body>
</html>
</syntaxhighlight>
 
Ini akan menghasilkan teks yang berada langsung di elemen <code><nowiki><div></nowiki></code> akan dirender dengan font berukuran 12 px, sedangkan teks yang tidak berada di dalam elemen <code><nowiki><div></nowiki></code> atau berada di elemen lain tetapi merupakan turunan dari elemen <code><nowiki><div></nowiki></code>, 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 (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 namun sampai tahun 2021 masih belum didukung oleh Firefox.<ref>{{Cite web|title=Can I use... Support tables for HTML5, CSS3, etc|url=https://caniuse.com/?search=cross%20fade|website=caniuse.com|access-date=2021-02-24}}</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.<ref>{{Cite web|title=Using Feature Queries in CSS – Mozilla Hacks - the Web developer blog|url=https://hacks.mozilla.org/2016/08/using-feature-queries-in-css|website=Mozilla Hacks – the Web developer blog|language=en-US|access-date=2021-02-24}}</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 ==
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 pembaharuan besar GTK versi 3.<ref>{{Cite web|title=February 2011 – GTK Development Blog|url=https://blog.gtk.org/2011/02/|language=en-US|access-date=2021-02-25}}</ref>
 
[[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 ==
{{Main|CSS Preprocessor}}''CSS preprocessor'' (pra pengolahan) adalah bahasa script atau program yang memungkinkan pengguna menulis kode CSS sesuai dengan [[sintaksis]] (''syntax) prepocessor'' itu sendiri.<ref name=":0">{{Cite web|title=CSS preprocessor - MDN Web Docs Glossary: Definitions of Web-related terms {{!}} MDN|url=https://developer.mozilla.org/en-US/docs/Glossary/CSS_preprocessor|website=developer.mozilla.org|language=en-US|access-date=2022-09-28}}</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,<ref>{{Cite web|date=2020-01-17|title=CSS Preprocessors Explained|url=https://www.freecodecamp.org/news/css-preprocessors/|website=freeCodeCamp.org|language=en|access-date=2022-09-28}}</ref>
 
Berikut adalah beberapa CSS ''preprocessor'' [[populer]] dan sering digunakan, yaitu :<ref name=":0" />
 
* [[Sass]]
* [[Less|LESS]]
* Stylus
* [[PostCSS]]
 
=== 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:''<ref>{{Cite web|title=Getting started {{!}} Less.js|url=https://lesscss.org/#variables|website=lesscss.org|access-date=2022-09-28}}</ref><ref>{{Cite web|title=Sass: Variables|url=https://sass-lang.com/documentation/variables|website=sass-lang.com|access-date=2022-09-28}}</ref>
 
==== 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:<ref>{{Cite web|title=Sass Nesting|url=https://www.w3schools.com/sass/sass_nesting.php|website=www.w3schools.com|language=en-US|access-date=2022-09-29}}</ref><ref>{{Cite web|title=Getting started {{!}} Less.js|url=https://lesscss.org/#nesting|website=lesscss.org|access-date=2022-09-29}}</ref>
 
==== 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 ==
 
* [[Bootstrap (kerangka kerja)]]
* [[Tailwind CSS]]
* Bulma
 
== Referensi ==
{{reflist}}
 
== Pranala luar ==
{{wikibooks|Pemrograman CSS}}
* {{en icon}} [http://www.w3.org/TR/CSS1 Spesifikasi CSS 1.0]
* {{en icon}} [http://www.w3.org/TR/CSS21 Spesifikasi CSS 2.1]
* (Inggris) [https://www.w3.org/TR/CSS22/ Spesifikasi CSS 2.2 (Preview)]
* {{en icon}} [http://www.w3schools.com/css/ Tutorial CSS]
* {{en icon}} [http://w3schools.com/cssref/default.asp Referensi CSS]
 
{{Daftar bahasa pemrograman}}
{{Standar W3C}}
{{Authority control}}
 
[[Kategori:StandarBahasa W3Cskrip|CSS]]
[[Kategori:Bahasa skrip|{{PAGENAME}}]]
 
[[ar:صفحات الطرز المتراصة]]
[[az:CSS]]
[[bar:CSS]]
[[bat-smg:CSS]]
[[bg:CSS]]
[[bs:CSS]]
[[ca:Cascading Style Sheets]]
[[cs:Kaskádové styly]]
[[cy:Cascading Style Sheets]]
[[da:CSS]]
[[de:Cascading Style Sheets]]
[[el:CSS]]
[[en:Cascading Style Sheets]]
[[eo:CSS]]
[[es:Hojas de estilo en cascada]]
[[et:CSS]]
[[eu:CSS]]
[[fa:الگوهای آبشاری]]
[[fi:Cascading Style Sheets]]
[[fr:Feuilles de style en cascade]]
[[ga:Stílbhileoga cascáideacha]]
[[gd:CSS]]
[[gl:CSS]]
[[he:גיליונות סגנון מדורגים]]
[[hr:CSS]]
[[hsb:CSS]]
[[hu:CSS]]
[[is:Cascading Style Sheets]]
[[it:CSS (informatica)]]
[[ja:Cascading Style Sheets]]
[[ka:CSS]]
[[ko:CSS]]
[[la:CSS]]
[[lt:CSS]]
[[lv:Cascading Style Sheets]]
[[ml:കാസ്‌കേഡിങ്ങ് സ്റ്റൈൽ ഷീറ്റ്‌സ്]]
[[ms:Cascading Style Sheets]]
[[nl:Cascading Style Sheets]]
[[nn:Stilark]]
[[no:Cascading Style Sheets]]
[[pl:Kaskadowe arkusze stylów]]
[[pt:Cascading Style Sheets]]
[[ro:Cascading Style Sheets]]
[[ru:Каскадные таблицы стилей]]
[[simple:Cascading Style Sheets]]
[[sk:Kaskádové štýly]]
[[sl:CSS]]
[[sq:Fletat e Stileve të Shkallëzuar]]
[[sr:CSS]]
[[sv:Cascading Style Sheets]]
[[ta:விழுத்தொடர் பாணித் தாள்கள்]]
[[th:แคสเคดดิงสไตล์ชีตส์]]
[[tk:CSS]]
[[tr:Stil şablonları]]
[[uk:CSS]]
[[vi:CSS]]
[[zh:CSS]]