CSS Lanjutan
CSS Lanjutan
• Disini kita mempunya 4 line kolom dan 3 line row, dengan masing
masing 3 kotak di atas dan 3 kotak dibawah
Code HTML
Code CSS
#1 Grid Column
<html>
<head>
<title>Belajar CSS</title>
<style>
div {
position: static;
</style>
</head>
<body>
<h1>Belajar CSS</h1>
</body>
</html>
Posisi relative
• Elemen dengan posisi relative diposisikan relative terhadap posisi
normalnya.
• Dengan posisi relative Anda bisa mengatur letak posisi dengan
properti top, right, bottom dan left.
• Elemen yang diposisikan relative dapat tumpang tindih dengan
elemen lain, dan menjaga ruang yang awalnya disediakan dalam
aliran normal.
• <!DOCTYPE html> <style>
• <html>
#relative {
• <head>
• <title>Belajar CSS</title> background-color: yellow;
• </head> position: relative;
• <body> top: 20px;
• <h1>Belajar CSS</h1>
left: 100px;
• <div id="relative">Box kuning ini memiliki width: 30%;
nilai position: relative;</div>
height: 80px;
• </body> }
• </html> </style>
Posisi absolute
• Elemen dengan posisi absolute diposisikan sepenuhnya keluar dari
aliran normalnya. Dengan posisi absolute Anda bisa mengatur letak
posisi dengan properti top, right, bottom dan left. Elemen yang
diposisikan absolute dapat tumpang tindih dengan elemen lain,
dan tidak menjaga ruang yang awalnya disediakan dalam aliran
normal.
• Jika posisi absolute dibungkus dengan posisi relative, maka akan
mengikuti posisi kordinat dari pembungkusnya (relative). Namun jika
posisi absolute tidak memiliki pembungkus yang mempunyai posisi
relative, maka ia menggunakan elemen <body> sebagai kordinatnya.
<!DOCTYPE html> <style>
<html> #relative {
<head> background-color: grey;
position: relative;
<title>Belajar CSS</title>
width: 80%;
</head>
height: 300px;
<body>
}
#absolute {
<h1>Belajar CSS</h1>
background-color: yellow;
<div id="relative"> position: absolute;
<div id="absolute">Box kuning ini memiliki nilai position: top: 50px;
absolute;</div>
left: 100px;
</div>
width: 40%;
height: 100px;
</body>
}
</html> </style>
Posisi fixed
• Elemen dengan posisi fixed digunakan untuk memberikan
posisi tetap bahkan jika halaman tersebut digulir. Dengan posisi fixed
Anda bisa mengatur letak posisi dengan
properti top, right, bottom dan left.
• Elemen yang diposisikan fixed dapat tumpang tindih dengan elemen
lain, dan tidak menjaga ruang yang awalnya disediakan dalam aliran
normal.
<!DOCTYPE html> <body>
<h1>Belajar CSS</h1>
position: fixed; <p>Silakan scroll ke bawah agar melihat sifat posisi fixed</p>
left: 70px; <p>Silakan scroll ke bawah agar melihat sifat posisi fixed</p>
height: 100px; <p>Silakan scroll ke bawah agar melihat sifat posisi fixed</p>
</head> </html>
Posisi sticky
• Elemen dengan posisi sticky digunakan untuk toggle
posisi relative dan posisi fixed.
• Ini diposisikan relatif sampai posisi offset yang diberikan bertemu di
viewport – kemudian “sticky” di tempatnya.
• Dengan posisi sticky Anda bisa mengatur letak posisi dengan
properti top, right, bottom dan left.
• Elemen yang diposisikan sticky dapat tumpang tindih dengan elemen
lain, dan tidak menjaga ruang yang awalnya disediakan dalam aliran
normal.
<!DOCTYPE html>
<html>
<head>
<title>Belajar CSS</title>
<style>
#sticky {
position: -webkit-sticky;
position: sticky;
top: 0;
padding: 15px;
background-color: lightgrey;
border: 3px solid blue;
}
p{
line-height: 3.5;
}
</style>
</head>
<body>
<h1>Belajar CSS</h1>
<div id="sticky">Sticky</div>
</body>
</html>
Posisi elemen tumpang tindih
• Ketika elemen diposisikan, maka mereka dapat tumpang tindih dengan
elemen yang lainnya.
• Dengan properti z-index Anda bisa mengatur untuk menentukan elemen
mana yang akan ditempatkan dibelakang dan elemen mana yang akan
ditempatkan didepan.
• Nilai properti z-index mendukung nilai positif atau negatif.
• Elemen dengan urutan tumpukan lebih besar selalu didepan elemen
dengan urutan tumpukan lebih rendah.
• Jika dua elemen yang diposisikan tumpang tindih tanpa properti z-index
yang ditentukan, elemen yang diposisikan terakhir dalam kode HTML akan
ditampilkan di atas.
<!DOCTYPE html>
<html>
<head>
<title>Belajar CSS</title>
<style>
p{
position: absolute;
left: 10px;
top: 10%;
z-index: -1;
background-color: red;
}
</style>
</head>
<body>
<h1>Belajar CSS</h1>
<img id="g1" width="200" src="https://upload.wikimedia.org/wikipedia/commons/thumb/8/8a/Steilk%C3%BCste_bei_Ahrenshoop.jpg/1200px-
Steilk%C3%BCste_bei_Ahrenshoop.jpg">
<p>Gambar berada dibelakang dikarenakan efek dari z-index: -1;</p>
</body>
</html>
Properti Position
Kombinator selektor
pada CSS
Selektor kombinator
• Kombinator selektor pada CSS digunakan untuk menghubungkan
selektor dengan pemilih, dan kombinator selektor bisa berupa
pemilih sederhana atau pemilih yang kompleks yang terdiri dari lebih
dari satu pemilih yang terhubungan dengan menggunakan
kombinator. Anda bisa memilih selektor lebih dari satu pilihan dengan
dipisahkan dengan koma.
• Ada empat kombinator berbeda dalam CSS:
• selektor keturunan (spasi)
• selektor anak (>)
• selektor saudara kandung yang berdekatan (+)
• selektor saudara umum (~)
Selektor keturunan
• Selektor keturunan digunakan untuk memilih semua elemen
keturunan dari tag HTML yang dipilih. Kombinator ini untuk
menghubungkannya menggunakan spasi.
<!DOCTYPE html>
<html>
<head>
<title>Belajar CSS</title>
<style>
div p {
background-color: orange;
}
</style>
</head>
<body>
<h1>Belajar CSS</h1>
<div>
<p>Paragraf 1 didalam div</p>
<p>Paragraf 2 didalam div</p>
<section><p>Paragraf 3 didalam div</p></section>
</div>
<p>Paragraf 4 diluar div</p>
<p>Paragraf 5 diluar div</p>
</body>
</html>
Selektor anak
• Selektor anak digunakan untuk memilih elemen yang merupakan
anak langsung dari tag HTML yang dipilih. Kombinator ini untuk
menghubungkannya menggunakan lebih besar (>).
<!DOCTYPE html>
<html>
<head>
<title>Belajar CSS</title>
<style>
div p {
background-color: orange;
}
</style>
</head>
<body>
<h1>Belajar CSS</h1>
<div>
<p>Paragraf 1 didalam div</p>
<p>Paragraf 2 didalam div</p>
<section><p>Paragraf 3 didalam div</p></section> <!-- Bukan anak tapi Keturunan -->
</div>
</body>
</html>
Selektor saudara kandung
yang berdekataan
• Selektor saudara digunakan untuk memilih elemen yang merupakan
saudara kandung yang berdekatan dari tag HTML yang dipilih,
selektor saudara harus memilih elemen induk yang bersebelahan
dan berdekatan hampir secara langsung.
• Kombinator ini untuk menghubungkannya menggunakan tambah (+).
<!DOCTYPE html>
<html>
<head>
<title>Belajar CSS</title>
<style>
div + p {
background-color: orange;
}
</style>
</head>
<body>
<h1>Belajar CSS</h1>
<div>
<p>Paragraf 1 didalam div</p>
<p>Paragraf 2 didalam div</p>
<section><p>Paragraf 3 didalam div</p></section>
</div>
<p>Paragraf 4 diluar div</p>
<p>Paragraf 5 diluar div</p>
</body>
</html>
Selektor saudara umum
• Selektor saudara umum digunakan untuk memilih semua elemen
yang merupakan saudara kandung yang berdekatan dari tag HTML
yang dipilih, selektor saudara umum harus memilih elemen induk
yang bersebelahan dan berdekatan hampir secara langsung.
• Kombinator ini untuk menghubungkannya menggunakan tilde (~).
<!DOCTYPE html>
<html>
<head>
<title>Belajar CSS</title>
<style>
div ~ p {
background-color: orange;
}
</style>
</head>
<body>
<h1>Belajar CSS</h1>
<p>Paragraf 1</p>
<div>
<p>Paragraf 2</p>
</div>
<p>Paragraf 3</p>
<code>Teks code</code>
<p>Paragraf 4</p>
</body>
</html>
CSS pseudo class dan
element
Apa itu pseudo-classes ?
• Pseudo-classes pada CSS sering digunakan untuk mendefinisikan
keadaan khusus suatu elemen. Biasanya dikombinasikan dengan efek
visual dari suatu unsur misalnya:
• ketika mouse pengguna diatasnya, ketika elemen mendapatkan fokus,
ketika memilih penyeleksian untuk menargetkan elemen anak
pertama atau terakhir dan yang lainnya. Pseudo-classes dimulai
dengan titik dua ( : ) dan berikut gambaran syntax dari pseudo-
classes:
selector : pseudo-classes { properti : value ; }
Anchor pseudo-classes
• Anchor pseudo-classes paling sering digunakan dan dapat ditampilkan
dengan berbagai cara. Dengan pseudo-classes ini Anda bisa
mengubah link sebagai respons terhadap tindakan pengguna. Berikut
list anchor pseudo-classes:
• a: link – Normal, link yang belum dikunjungi
• a: visited – Link pengguna yang telah dikunjungi
• a: hover – Link ketika mouse pengguna di atasnya
• a: active – Link saat itu diklik
<!DOCTYPE html>
<html>
<head>
<title>Belajar CSS</title>
<style>
a:link {
color: red;
}
a:visited {
color: green;
text-decoration: none;
}
a:hover {
color: blue;
}
a:active {
color: orange;
}
</style>
</head>
<body>
<h1>Belajar CSS</h1>
<a href="https://www.facebook.com" target="_blank">Anchor pseudo-classes</a>
</body>
</html>
:first-child pseudo-classes
• :first-child pseudo-classes digunakan untuk memilih elemen yang
merupakan elemen anak pertama dari beberapa elemen lainnya.
• Dengan begitu Anda bisa memilih penyeleksian untuk menargetkan
elemen anak pertama tanpa menambahkan atribut ID atau class pada
elemen.
:last-child pseudo-classes
• :last-child pseudo-classes digunakan untuk memilih elemen yang
merupakan elemen anak terakhir dari beberapa elemen lainnya.
• Dengan begitu Anda bisa memilih penyeleksian untuk menargetkan
elemen anak terakhir tanpa menambahkan atribut ID atau class pada
elemen.
:lang pseudo-classes
• :lang pseudo-classes memungkinkan Anda untuk menentukan aturan
khusus untuk bahasa yang berbeda. :lang pseudo-classes dalam
contoh di bawah ini mendefinisikan tanda kutip untuk <q> elemen
yang secara eksplisit diberi nilai bahasa no.
Pseudo-classes dengan class dan id
• Pseudo-classes dapat dikombinasikan dengan atribut class atau ID
pada css. Link dengan class=”red” dalam contoh dibawah ini akan
ditampilkan dengan warna merah, dan link dengan id=”orange” akan
ditampilkan dengan warna orange.
Apa itu pseudo-elements ?
• Pseudo-element pada CSS digunakan untuk memberikan style pada
elemen, dan Anda bisa memberikan style tanpa menambahkan
atribut ID atau class.
• Dengan pseudo-element Anda bisa memberikan style seperti:
• style pada paragraf pertama untuk membuat efek drop cap,
• memasukan beberapa konten pada elemen sebelum atau sesudah,
• memberikan efek seleksi pada elemen yang dipilih pengguna dll.
• Berikut gambaran syntax dari pseudo-element:
selector :: pseudo-element { properti : value ; }
Perbedaan pseudo-element dan
pseudo-classes
• Pseudo-element dan pseudo-classes sekilas mungkin hampir sama, tetapi
itu berbeda. Berikut perbedaannya:
• pseudo-element dimulai dengan titik dua ganda ( :: )
• pseudo-classes dimulai dengan titik dua tunggal ( : )
• Sebanarnya jika Anda menggunakan titik dua tunggal atau pun titik dua
ganda pada pseudo-classes atau pun pseudo-element, semuanya akan
bekerja.
• titik dua ganda menggantikan notasi titik dua tunggal untuk pseudo-
element dalam CSS3. Ini merupakan upaya dari W3C untuk membedakan
antara pseudo-classes dan pseudo-element.
• Syntax titik dua tunggal digunakan untuk kedua pseudo-classes dan
pseudo-element dalam CSS2 dan CSS1. Untuk kompatibilitas, syntax titik
dua tunggal dapat diterima untuk CSS2 dan CSS1 pseudo-element.
::first-line pseudo-element
• ::first-line pseudo-element digunakan untuk menambah style khusus
pada baris pertama dari teks. Contoh berikut memberikan style pada
baris pertama untuk teks paragraf. Panjang baris pertama tergantung
pada ukuran jendela browser.
Properti
• ::first-line pseudo-element hanya dapat diterapkan untuk unsur-unsur elemen yang mempunyai
display block. Properti berikut dapat diterapkan pada ::first-line pseudo-element:
• properti font
• properti color
• properti background
• properti word-spacing
• properti letter-spacing
• properti text-decoration
• properti vertical-align
• properti text-transform
• properti line-height
• clear
::first-letter pseudo-element
• ::first-letter pseudo-element digunakan untuk menambah style
khusus untuk huruf pertama dan pada baris pertama dari teks.
Contoh berikut memberikan style pada huruf pertama dari teks
paragraf dan membuat efek seperti drop cap.
• ::first-letter pseudo-element hanya dapat diterapkan untuk unsur-unsur elemen yang mempunyai display
block. Properti berikut dapat diterapkan pada ::first-letter pseudo-element:
• properti font
• properti color
• properti background
• properti margin
• properti padding
• properti border
• properti text-decoration
• properti vertical-align (hanya jika “float” adalah “none”)
• properti text-transform
• properti line-height
• properti float
• clear
::before pseudo-element
• ::before pseudo-element digunakan untuk memasukkan konten
“sebelum” pada elemen HTML. Anda bisa menggunakan
properti content seperti contoh dibawah ini untuk
menghubungkannya dengan pseudo-element, yang bertujuan untuk
memasukkan konten yang ingin dihasilkan.
• Pada properti content Anda bisa menyisipkan string teks atau objek
yang disematkan seperti gambar dan sumber daya lainnya.
h1::before { content:
url(https://tools.hendky.com/editor/gambar/senyum.gif); }
::after pseudo-element
• ::after pseudo-element digunakan untuk memasukkan konten
“sesudah” pada elemen HTML. Anda bisa menggunakan
properti content seperti contoh dibawah ini untuk
menghubungkannya dengan pseudo-element, yang bertujuan untuk
memasukkan konten yang ingin dihasilkan.
• Pada properti content Anda bisa menyisipkan string teks atau objek
yang disematkan seperti gambar dan sumber daya lainnya.
h1::after { content:
url(https://tools.hendky.com/editor/gambar/senyum.gif); }
::selection pseudo-element
• ::selection pseudo-element digunakan untuk memberikan style disaat
pengguna menyorot teks ( menekan klik kanan lalu menyeret teks ).
Anda bisa memberikan style dengan pseudo-element ini hanya
properti: color, bakcground, cursor dan outline.
Pseudo-element dengan class dan id
• Pseudo-element dapat dikombinasikan dengan atribut class atau ID
pada css. Contoh dibawah ini kita akan memberikan style pada
paragraf pertama membuat efek drop cap dan memberikan warna
pada baris pertama.
CSS Media Query
• Media query merupakan modul CSS3 yang berguna membuat layout
kita responsive dengan menyesuaikan tampilan berdasarkan ukuran
layar perangkat.
• Media query juga disebut dengan Breakpoint, karena cara kerja
media query yakni dengan cara mengecheck ukuran
viewport(layar/area dimana konten terlihat) apakah sesuai dengan
kondisi yang kita deklarasikan, jika benar maka kode dalam kondisi
tersebut yang akan dieksekusi. Dengan kata lain media query
memberikan kemampuan menggunakan kode css yang sesuai dengan
kondisi yang ditentukan.
Eksternal & internal media query
• Cara Eksternal:
Dengan menggunakan tag <link> di dalam elemen head
• Cara Internal:
Kita definisikan dengan rule @media di dalam internal css atau file css
terpisah
Logika dalam CSS Media Query
LOGIKA KETERANGAN
And Agar rules kita dapat dieksekusi maka pernyataan kita harus bernilai benar secara
berturut-turut
Or Dalam media query operator or dilambangkan dengan tanda baca koma (,). rules dengan
logika or memiliki arti dapat dieksekusi jika salah satu diantara pernyataannya benar
Only Only berfungsi untuk mencegah browser lama untuk menyentuh style untuk Android atau
iPhone. Rules CSS hanya dapat dieksekusi jika semua query bernilai benar. Syarat
menggunakan only adalah kita harus mengikut sertakan media type
Media Type
Media KETERANGAN
all Rules CSS kita cocok di semua jenis devices
print Style kita dimaksudkan untuk ditampilkan pada dokumen cetak atau print preview
screen Nilai default media type. Style kita dikhususkan untuk tampilan layar.
speech Device yang memiliki kapabilitas speech
Media Features
Untuk menentukan kondisi kita bisa menyertakan media features di bawah ini dengan nilai batas nantinya sebuah rules akan
dieksekusi. Media featurs harus berada dalam tanda kurung.
• width
• height
• device-width
• device-height
• aspect-ratio
• device-aspect-ratio
• color
• color-index
• monochrome
• resolution
• orientation
• scan
• grid
Contoh penggunaan