Cascading Style Sheets

CSS (Cascading Style Sheets)

CSS (Cascading Style Sheets) adalah bahasa desain yang digunakan untuk menentukan tampilan dan tata letak halaman web. CSS memungkinkan pengembang untuk memisahkan konten dari desain visual, memberikan fleksibilitas dalam mengatur elemen halaman web secara estetis tanpa mengubah HTML-nya. CSS memungkinkan halaman web menjadi lebih menarik, interaktif, dan responsif terhadap berbagai ukuran layar.








1. Pengertian CSS 

CSS (Cascading Style Sheets) adalah bahasa yang digunakan untuk menentukan tampilan elemen HTML. Dengan CSS, Anda dapat mengatur warna, font, ukuran, tata letak, dan bahkan animasi elemen web. CSS memungkinkan pemisahan antara konten (HTML) dan presentasi, sehingga kode HTML menjadi lebih bersih dan mudah dikelola.

2. Struktur CSS 

CSS terdiri dari selektor dan deklarasi. Deklarasi terdiri dari properti dan nilai.

Contoh Struktur Dasar:

p {
color: blue;
font-size: 16px;
}

Penjelasan Struktur Dasar

- Selektor: p adalah selektor yang memilih semua elemen <p> (paragraf).
- Deklarasi: { color: blue; font-size: 16px; } adalah deklarasi yang mengatur gaya.
     Properti: color dan font-size adalah properti yang ingin Anda ubah.
     Nilai: blue dan 16px adalah nilai properti.

3. Cara Menyisipkan CSS 

CSS dapat diterapkan ke halaman web dengan tiga cara: Inline CSS, Internal CSS, dan External CSS.

Inline CSS

CSS dapat ditulis langsung di dalam elemen HTML menggunakan atribut style.
<p style="color: red; font-size: 14px;">Ini adalah paragraf dengan gaya inline.</p>

Internal CSS

CSS dapat ditulis di dalam tag <style> yang terletak di bagian <head> dokumen HTML.
<head> <style> body { background-color: lightgrey; } h1 { color: blue; font-size: 24px; } </style> </head>

External CSS

CSS juga dapat ditulis dalam file terpisah dengan ekstensi .css, lalu ditautkan ke dokumen HTML menggunakan tag <link>.

<head> <link rel="stylesheet" href="styles.css"> </head>

styles.css:

body {
background-color: lightgrey;
}
h1 {
color: blue;
font-size: 24px;
}

Kapan Menggunakan Cara yang Mana?

Inline CSS

Digunakan untuk perubahan cepat atau spesifik pada satu elemen, namun jarang disarankan karena sulit dikelola.

Internal CSS

Digunakan ketika gaya hanya diperlukan untuk satu halaman web.

External CSS

Digunakan saat ingin menerapkan gaya yang konsisten pada banyak halaman web. Ini adalah metode yang paling umum.

4. Selektor CSS 

Selektor digunakan untuk memilih elemen HTML yang ingin Anda beri gaya. Ada berbagai jenis selektor dalam CSS.

Selektor Elemen

Memilih elemen HTML berdasarkan nama tag.

p {
color: green;
}

Selektor ID

Memilih elemen berdasarkan atribut id. ID bersifat unik, jadi setiap ID hanya boleh digunakan sekali di seluruh halaman.

#header {
background-color: yellow;
}

HTML:
<div id="header">Ini adalah header</div>

Selektor Class

Memilih elemen berdasarkan atribut class. Class dapat digunakan pada beberapa elemen.

.box {
border: 1px solid black;
padding: 10px;
}

HTML:
<div class="box">Box 1</div> <div class="box">Box 2</div>

Selektor Atribut

Memilih elemen berdasarkan atribut tertentu.

input[type="text"] {
border: 1px solid grey;
}

HTML:<input type="text" placeholder="Ketikkan teks..."> <input type="password" placeholder="Ketikkan password...">


Selektor Pseudo-Class

Memilih elemen berdasarkan keadaan atau perilaku spesifik, seperti saat elemen di-hover atau di-klik.

a{
color: red;
}

HTML:
<a href="#">Tautan ini berubah warna saat di-hover</a>

Selektor Descendant


Memilih elemen yang berada di dalam elemen lainnya (bersarang).

div p {
color: blue;
}

HTML:
<div> <p>Paragraf ini berada di dalam div</p> </div> <p>Paragraf ini tidak dipengaruhi oleh selektor di atas</p>

5. Properti CSS 

Berikut adalah beberapa properti penting dalam CSS yang sering digunakan.

Warna (Color)

color: Mengatur warna teks.
background-color: Mengatur warna latar belakang.

h1 {
color: blue;
}
body {
background-color: lightyellow;
}

Teks (Text)

font-size: Mengatur ukuran teks.
font-family: Mengatur jenis huruf.
text-align: Mengatur perataan teks (kiri, tengah, kanan).
font-weight: Mengatur ketebalan huruf.

p {
font-size: 16px;
font-family: Arial, sans-serif;
text-align: justify;
font-weight: bold;
}

Tata Letak (Layout)

margin: Mengatur jarak luar dari elemen.
padding: Mengatur jarak dalam antara konten dan batas elemen.
border: Mengatur batas elemen.
width dan height: Mengatur lebar dan tinggi elemen.

div {
margin: 20px;
padding: 15px;
border: 2px solid black;
width: 200px;
height: 100px;
}

Tata Letak Flexbox dan Grid

Flexbox

Flexbox adalah model tata letak yang lebih fleksibel dan mudah digunakan untuk membuat layout dinamis.

.container {
display: flex;
justify-content: space-between;
}

Grid

CSS Grid adalah metode yang lebih kompleks untuk mengatur elemen dalam baris dan kolom.

.grid-container {
display: grid;
grid-template-columns: 1fr 2fr 1fr;
}

Display dan Visibility

display: Mengatur bagaimana elemen ditampilkan (block, inline, none).
visibility: Mengatur apakah elemen terlihat atau tidak, tanpa mengubah tata letak.

div {
display: block;
}
span {
display: none;
}

6. Media Queries 

Media Queries digunakan untuk membuat situs web responsif, memungkinkan halaman untuk menyesuaikan tampilannya sesuai dengan ukuran layar perangkat.

Contoh Media Query:

@media only screen and (max-width: 600px) {
body {
background-color: lightblue;
}
}

Teknik Responsif Lainnya:

Unit Relatif: Gunakan unit seperti em, rem, atau % alih-alih px untuk ukuran yang responsif.
Fluid Layouts: Gunakan tata letak yang fleksibel dengan unit seperti fr dan vw (viewport width).

7. Animasi dan Transisi 

CSS juga memungkinkan Anda untuk membuat animasi dan efek transisi.

Transisi:

a {
color: black;
transition: color 0.3s ease;
}
a
{
color: red;
}

Animasi:

@keyframes example {
from {background-color: red;}
to {background-color: yellow;}
}

div {
width: 100px;
height: 100px;
background-color: red;
animation: example 3s infinite;
}

8. Inheritance dan Cascade dalam CSS 

CSS memiliki mekanisme pewarisan dan cascading, yang mengatur bagaimana gaya diterapkan pada elemen berdasarkan aturan yang telah ditentukan.

Inheritance (Pewarisan)

Beberapa properti CSS diwariskan dari elemen induk ke elemen turunannya. Contoh properti yang diwariskan adalah color, font-family, dan line-height.

body {
font-family: Arial, sans-serif;
}
p {
color: green;
}

Jika Anda menerapkan font-family ke <body>, semua elemen anak dalam <body> akan mewarisi gaya ini kecuali ditentukan sebaliknya.

Cascading (Tumpang Tindih)

Jika ada lebih dari satu aturan yang berlaku untuk elemen, CSS akan menerapkan aturan berdasarkan urutan prioritas:

1. Urutan prioritas (inline > internal > external)
2. Spesifisitas selektor
3. Urutan kemunculan dalam kode

9. Praktik dalam CSS

Gunakan External CSS

Gunakan file CSS eksternal untuk menjaga kode HTML tetap bersih dan memudahkan pemeliharaan.
Gunakan Class daripada ID untuk Selektor Berulang
ID harus unik di setiap halaman, sementara class dapat digunakan beberapa kali.

Gunakan Variabel CSS

Dalam CSS modern, Anda bisa menggunakan variabel untuk mendefinisikan nilai yang dapat digunakan kembali.

{
--primary-color: blue;
}

p {
color: var(--primary-color);
}

Optimasi untuk Performa

Minimalkan penggunaan !important dan atur CSS dengan rapi agar mudah dibaca dan dipelihara. Gabungkan dan kompres file CSS untuk mempercepat waktu muat halaman.

10. Alat Bantu CSS 

Berikut adalah beberapa alat dan framework yang dapat membantu dalam penulisan CSS:

Bootstrap: Framework CSS populer untuk membuat situs web responsif dengan cepat.
Sass: Preprocessor CSS yang menyediakan fitur seperti variabel, nesting, dan mixin.
CSS Lint: Alat untuk memeriksa kesalahan dan masalah gaya dalam kode CSS.

11. Referensi dan Sumber Belajar

Untuk mempelajari CSS lebih lanjut, berikut beberapa sumber yang dapat Anda manfaatkan:

MDN Web Docs: Panduan lengkap tentang CSS.
W3Schools: Tutorial interaktif tentang CSS.
CSS Tricks: Situs dengan banyak tips dan trik seputar CSS.
FreeCodeCamp: Kursus gratis tentang CSS.


Komentar

Postingan populer dari blog ini

Kerangka Web

Hyper Text Markup Language