Cascading Style Sheets: Perbedaan antara revisi

Konten dihapus Konten ditambahkan
Pidopram (bicara | kontrib)
Fitur saranan suntingan: 3 pranala ditambahkan.
 
(16 revisi perantara oleh 5 pengguna tidak ditampilkan)
Baris 1:
{{infoboxInfobox file format
| name = Cascading Style Sheets (CSS)
| extension = .css
| logoicon = [[Berkas:CSS3 logo and wordmark.svg|100px]]
| 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''' ('''CSS''') merupakan aturan untuk mengatur beberapa komponen dalam sebuah web sehingga akan lebih terstruktur dan seragam. CSS bukan merupakan [[bahasa pemrograman]].
 
'''Cascading Style Sheet''' ('''CSS''') merupakan aturan untuk mengatur beberapa komponen dalam sebuah web sehingga akan lebih terstruktur dan seragam. CSS bukan merupakan bahasa pemrograman.
 
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-sama 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 dipakai untuk memformat tampilan halaman web yang dibuat dengan [[bahasa]] [[HTML]] dan [[XHTML]].<ref name="Slamet"/>
Baris 17 ⟶ 29:
== Sejarah ==
{{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"/> Setelah CSS distandardisasikandistandarisasikan, [[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]].
Baris 34 ⟶ 46:
Bagian pertama sebelum tanda '{}' dinamakan ''selector'', sedangkan yang diapit oleh '{}' disebut ''declaration'' yang terdiri dari ''dua'' unsur, yaitu ''property'' dan ''value''. ''Selector'' dalam pernyataan di atas adalah h1, sedangkan ''color'' adalah ''property'', dan #0789de adalah ''value.''<ref>Untung Julianto, ''Modifikator Blogger + CD'', halaman 22. Elex Media Komputindo.</ref>
 
''Selain itu ada tiga metode penulisan CSS atribut, yaitu:''<ref>Untung Rahardja, Augury El Rayeb, & Asep Saefullah (2009). ''Siapa saja bisa membuat website dengan CSS dan HTML'', halaman 37-41. Andi Yogyakarta.<name="css_html"/ref>
 
=== Inline Style Sheet ===
Baris 47 ⟶ 59:
</head>
 
<body bgcolor="#FFFFFF">
<p id="cth1">
Ini adalah contoh tag P tanpadiformattanpa diformat menggunakan CSS </p>
 
<p id="cth2" style="font-size:20pt">
Baris 64 ⟶ 76:
CSS didefinisikan terlebih dahulu dalam tag '''<style> ...</style>''' di atas tag '''<body>'''.<ref name="css_html" /> Pada pendefinisian ini disebutkan atribut-atribut CSS yang akan digunakan untuk tag-tag HTML, yang selanjutnya dapat digunakan oleh tag HTML yang bersangkutan.<ref name="css_html" />
 
Contoh penggunaan CSS dengan metode '''Embedded Style Sheet''' adalah sebagai berikut :<ref name="css_html" />
<syntaxhighlight lang="html4stricthtml5" line="1">
<html>
 
Baris 75 ⟶ 87:
background: #0000FF;
color: #FFFF00;
margin-left: 0.5in;
}
 
h1 {
font-size: 18pt;
color: #FF0000;
}
 
Baris 86 ⟶ 98:
font-size: 12pt;
font-family: arial;
text-indent: 0.5in;
}
</style>
Baris 103 ⟶ 115:
CSS didefinisikan dengan disimpan di berkas yang berbeda. Ini dapat mempermudah dalam perawatan dan dapat digunakan di semua berkas HTML sehingga memudahkan seorang pengembang web untuk mengembangkan situs web miliknya. Untuk menautkan berkas CSS ke suatu berkas HTML kita hanya perlu menggunakan kode <syntaxhighlight lang="html"><link href="lokasiberkas.css" rel="stylesheet"></syntaxhighlight>
=== Shorthand CSS ===
Ada beberapa properti CSS yang dapat disingkat, biasanya dipanggil dengan Shorthand CSS. Teknik shorthand adalah cara mempersingkat penulisan kode CSS yang memungkinkan untuk menetapkan nilai beberapa ''property'' secara bersamaan. Teknik ini dapat menghemat karakter, menghemat energi, dan tentu saja menghemat waktu. Kode jadi terlihat lebih rapi, efisien, dan sering kali lebih mudah dibaca.
 
Dalam CSS, adalah wajar jika satu property memiliki banyak elemen. Misalnya dalam kode margin memiliki 4 ''property'' untuk setiap sisi elemen.
 
# margin-top
Baris 288 ⟶ 300:
 
== 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.
Baris 323 ⟶ 335:
{{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 ''prepocessor'' yang dapat digunakan, namun sebagain besar CSS ''prepocessor'' memiliki beberapa fitur yangt tidak ada di ''vanilla'' CSS (CSS polos atau 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>
 
''CSS preprocessor'' me-''compile'' kode CSS yang ditulis dengan ''compiler'' khusus yang dimilikinya.
<!-- detail fitur
cara penggunaan
kelebihan
https://medium.com/@sedwardscode/css-preprocessors-what-why-how-7bc5a7a564de
Jenis -->
 
Berikut adalah beberapa CSS ''preprocessor'' [[popular]] dan sering digunakan, di antaranya yaitu :<ref name=":0" />
Baris 340 ⟶ 345:
 
=== 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''). BerikutSehingga adalahproses contohpengembangan penulisansuatu variabelweb dalamdapat ''CSSlebih preprocessor:''<syntaxhighlightcepat lang="sass"dan line="1">mudah.
// Penulisan CSS preprocessor Sass
$font-size: 16px;
 
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>
div {
 
font-size: $font-size;
==== 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>
Baris 362 ⟶ 472:
* {{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]