Komentar
Teks yang diapit oleh <!-- --> menjadi komentar. Komentar tidak ditampilkan di browser. Komentar sangat berguna
untuk menjelaskan code Anda.
3. Tautan
Tag Tautan (1)
Anda dapat dengan mudah membuat tautan dengan tag <a> (※ a mewakili anchor (penambat)). Teks dalam
tag <a> ditampilkan di browser sebagai teks tautan.
Atribut HTML
Pada HTML, Anda dapat menentukan atribut seperti href di tag pembuka (※ lihat gambar di sisi kiri).
Selalu letakkan nilai atribut dalam tanda kutip ganda ".
4. Gambar
Tag Gambar
Tag <img> digunakan untuk menampilkan gambar. Kita dapat menetapkan gambar dengan menentukan url di
atribut src seperti berikut: <img src="url">. Perhatikan bahwa tag <img> tidak memerlukan tag penutup karena tidak
ada teks yang diapit.
5. Daftar
Daftar (1)
Anda dapat membuat daftar dengan mengapit teks dengan tag <li>. Jangan khawatir, kita akan membahas
tag <ul> di slide berikutnya.
Daftar (2)
Jenis daftar akan berubah tergantung pada tag yang Anda gunakan. Dengan tag <ul> Anda dapat membuat daftar
dengan bullet. Jika element Anda "bersarang" seperti gambar dikiri bawah ini, element yang menutupi akan
menjadi induk dan element yang ditutupi akan menjadi anak-nya.
Identasi
Untuk element bersarang, praktik yang baik adalah mensejajarkan code dengan indentasi. Meskipun tidak
diperlukan, indentasi dapat memudahkan Anda untuk melihat hubungan induk-anak, terutama pada saat code Anda
sudah mulai banyak dan rumit (※ untuk membuat indentasi, tekan tombol "tab" di awal baris).
Syntax CSS
Ada beberapa hal yang harus diingat saat menulis CSS. Seperti HTML, Anda harus selalu mengindentasi code CSS
seperti gambar di bawah. Selain itu, perhatikan bahwa anda harus menambahkan titik dua : di akhir property CSS
dan titik koma ; diakhir baris seperti gambar dibawah.
Komentar CSS
Seperti di HTML, Anda dapat menulis komentar di file CSS. Namun di CSS, komentar harus diapit oleh /* */.
<head> Tag
Element <head> berisi settingan dokumen HTML yang tidak terlihat dibrowser. Ada tiga element yang harus Anda
letakkan di <head>. Kita akan lihat masing-masing element ini dipelajaran berikutnya.
Karakter Encoding
Dengan menentukan pengcodean karakter di atribut charset seperti <meta charset="utf-8">, Anda dapat mencegah
situs web menjadi kacau. UTF-8 adalah karakter encoding yang direkomendasikan untuk HTML5.
Tag <div>
Kita akan membuat tata letak dengan element <div> (※ "div" mewakili "divisi"). Tag <div> digunakan untuk
mengelompokkan element. Seperti contoh dibawah, layout dibagi menjadi tiga element <div> dengan nama
class header, main, dan footer.
Header
13. Struktur Header
Header
Setelah tata letak dasar selesai dikerjakan, sekarang mari kita mengerjakan beberapa detailnya. Pertama, kita akan
membuat header seperti gambar dibawah.
Struktur Header
Mari kita periksa struktur header. Ada logo "Progate" dan daftar. Mari kita kelompokkan kedua bagian ini
menggunakan element <div> seperti yang ditampilkan di bawah.
Property Float
Dengan menggunakan property float, Anda dapat menyejajarkan element secara horizontal. Seperti yang
ditampilkan pada contoh, menentukan float: left; akan mengatur element secara bersisian dari kiri ke kanan.
Menyejajarkan Item Daftar Secara Bersisian
Mari kita mulai mengatur item daftar diheader secara bersisian. Dengan menerapkan float: left; ke setiap
element <li> , Anda dapat menyejajarkannya secara horizontal dari kiri ke kanan.
15. Padding
Menyesuaikan Ruang
Mari kita sesuaikan ruang antara element di header sehingga logo dan daftar di header ditempatkan diposisi yang
sesuai seperti yang ditampilkan dibawah.
Shorthand Padding
Anda dapat menggunakan shorthand saat menerapkan padding. Anda dapat menerapkan padding ke beberapa sisi
menggunakan satu property saja. Saat empat nilai ditentukan, padding diterapkan searah jarum jam dari bagian atas.
Saat dua nilai ditentukan, padding diterapkan dalam urutan "atas/bawah" dan "kanan/kiri".
Footer
16. Struktur Footer
Footer
Sekarang, kita akan mengerjakan tata letak footer. Sama seperti header, mari kita periksa desain dan strukturnya.
Disisi kiri footer terdapat logo, dan di sisi kanan terdapat daftar.
Struktur Footer
Saat membuat header, kita menerapkan float dan padding ke setiap element <li>. Karena itu, property CSS juga
diterapkan ke element <li> di footer. Menurut Anda, bagaimana kita dapat menerapkan property CSS ini hanya ke
tag <li> di header?
Selector Bersarang
Dengan menambahkan li setelah header-list (dengan spasi di antara keduanya), Anda dapat menerapkan CSS hanya
ke element <li> di header-list. Ini memungkinkan Anda untuk menerapkan CSS yang berbeda ke element <li> di
header dan element <li> di footer.
Float: right
Dengan float: right, Anda dapat menyejajarkan element secara horizontal dari kiri ke kanan.
Konten
18. Layout Bagian Utama
Mari kita beralih ke layout bagian utama! Seperti yang ditampilkan dibawah, layout utama terdiri dari tiga element,
yaitu copy-container, contents, dan contact-form. Ini mungkin akan sedikit lebih rumit daripada layout lain yang
telah kita buat. Tapi jangan khawatir! Kami akan menjelaskan setiap langkahnya.
Tag <span>
Anda dapat menerapkan CSS ke sebagian teks dengan mengapitnya di tag <span>. Gambar dibawah
mengilustrasikan hal ini dengan menerapkan color: red; ke selector span. Tidak ada baris baru yang dimasukkan
sebelum atau setelah element <span>.
Element block dan inline
Di HTML, beberapa element akan dimulai dibaris baru dan beberapa tidak. Element block seperti div akan di mulai
dibaris baru, dan diperluas ke keseluruhan lebar element induknya. Sedangkan Element inline seperti span hanya
mengambil lebar secukupnya saja.
20. Batas
Pada gambar di bawah, element <h3> memiliki garis batas dibawahnya. Dipelajaran ini, kita akan belajar cara
membuatnya.
Model Kotak
Property margin, border dan padding yang telah kita bahas sejauh ini didasarkan pada konsep model kotak. Setiap
element HTML memiliki batas (secara default, sebagian besarnya tidak terlihat). Ruang diluar batas kotak adalah
margin, sedangkan ruang diantara batas dan teks adalah padding.
Shorthand Margin
Seperti property padding, Anda dapat menentukan margin secara satu per satu disetiap sisinya, atau sekaligus
menggunakan satu property saja.
Formulir
22. Layout Formulir (1)
Formulir
DIpelajaran ini, kita akan membuat formulir pertanyaan seperti gambar dibawah ini! Ayo langsung mulai!
Atribut Nilai
Jika diinginkan, Anda dapat mengubah teks yang ditampilkan di tombol submit (kirim) dengan menentukan
atribut value. Dengan atribut ini, kita dapat mengubah nama tombol submit menjadi apapun, seperti Kirim.
Menerapkan CSS ke Beberapa Seelector
Anda dapat mengelompokkan CSS yang sama dengan memisahkan beberapa selector dengan koma , seperti yang
ditunjukkan pada gambar tengah. Dengan melakukan hal tersebut, Anda dapat menerapkan CSS yang sama ke
berbagai selector. Untuk situs web kita, mari terapkan CSS yang sama ke element <input> dan <textarea>
menggunakan metode ini.
2. Layout dasar
Layout Halaman Web
Halaman web yang akan kita kerjakan, akan memiliki layout (tata letak) HTML seperti gambar dibawah ini.
Background-image
Bagian atas halaman yang akan kita kerjakan memiliki background image (gambar latar belakang). Kita dapat
menentukan gambar ini dengan menggunakan CSS property background-image yang harus ditulis seperti
ini: background-image: url(URL);.
Background-size
Pada saat mengunakan property background-image, jika gambar yang ditentukan memiliki size lebih kecil dari
tempat yang disediakan, gambar tersebut akan diduplikasikan hingga memenuhi seluruh ruang yang ada. Jika Anda
ingin memperbesar gambar untuk memenuhi ruanganya tanpa duplikasi, Anda dapat mengunakan property
CSS background-size: cover;.
Opacity
Untuk membuat element menjadi transparan, Anda dapat menggunakan CSS property opacity. Nilai yang dapat
Anda tentukan untuk opacity adalah antara 0.0 dan 1.0, dimana 0.0 adalah yang paling transparan.
Letter-spacing
Sedangkan untuk jarak antar huruf, Anda dapat menggunakan CSS property letter-spacing.
5. Membuat Tombol
Didalam pelajaran ini kita akan belajar membuat tombol dengan menggunakan tag <a>. Karena tag <a> adalah
element inline, kita tidak dapat menentukan ukuran dan penspasiannya. Namun jangan khawatir, kita akan cari tahu
bagaimana mengatasi hal ini.
Element Inline-block
Element inline-block memiliki karakteristik seperti element block dan inline. Seperti halnya element inline,
element inline-block akan disejajarkan secara horizontal. Selain itu, ukuran dan spasinya juga dapat dirubah, sama
seperti pada element block.
Display
Tag <a> adalah element inline secara default, namun Anda dapat menggunakan CSS property display untuk
mengaturnya. Property display dapat memiliki nilai block, inline-block, atau inline.
6. Menyesuaikan Layout
Mari kita sesuaikan layout halaman kita dengan berfokus pada hal-hal berikut:
・Mengubah warna tombol saat sedang ditunjuk kursor
・Membulatkan sudut tombol
・Menyejajarkan teks ketengah
:hover
Bila kursor menunjuk suatu element, maka element tersebut berada dalam status hover. Dengan menambahkan
selector :hover seperti gambar dibawah ini, kita dapat menentukan tingkah lakunya pada saat element dalam
status hover. Di code Anda, pastikan untuk tidak menempatkan spasi di kedua sisi : seperti gambar ditengah.
Border-radius
Selanjutnya, untuk membulatkan sudut element, kita dapat menggunakan CSS property border-radius. Semakin
besar nilainya, semakin bulat sudutnya.
Text-align
Property text-align dapat digunakan untuk menyejajarkan element inline dan inline-block. Nilai yang dapat anda
tetapkan untuk property text-align adalah left, center, atau right.
Font Awesome
Anda dapat dengan mudah mencari ikon menggunakan Font Awesome. Disana, banyak ikon tersedia yang dapat
Anda gunakan untuk halaman web Anda. Buka https://fontawesome.com/ untuk melihat daftar ikon yang dapat
Anda gunakan.
Header
8. Layout Header
Mari kita lanjutkan ke bagian header. Layout HTML untuk header halaman yang akan kita kerjakan ditampilkan
dalam gambar dibawah ini. Perhatikan bahwa warna latar belakang header sedikit transparan.
Opacity dan rgba
Sebelumnya, kita telah menggunakan opacity untuk membuat element menjadi transparan. Namun,
masalah opacity adalah seluruh element menjadi transparan, termasuk element turunannya. Jika kita hanya ingin
membuat warna latar belakangnya saja yang menjadi transparan, kita dapat menggunakan rgba.
rgb
Untuk mengetahui tentang rgba, kita harus terlebih dahulu memahami rgb. rgb adalah cara untuk menentukan
warna dengan kombinasi tiga nilai yakni, red (merah), green (hijau), dan blue (biru). Cara kerjanya sama seperti
format heksadesimal (misalnya, #ffffff) yang telah kita pelajari sebelumnya.
rgba
rgba dapat digunakan saat Anda ingin menentukan transparansi warna. Disini, Anda menentukan empat nilai
untuk rgba, dimana nilai keempatnya (alpha), menentukan transparansi, dimana 0.0 adalah yang paling transparan
dan 1.0 adalah yang paling penuh. Contoh dibawah menunjukkan perbedaan antara rgba dan opacity.
Transition
CSS property transition dapat digunakan untuk menambahkan animasi. Anda dapat
menentukan target dan durasi animasinya. Target dapat berupa property, seperti color, namun kita akan lebih
sering menentukannya ke all agar dapat diterapkan ke semua property. transition sering digunakan dengan
selector hover.
Line-height
CSS property line-height dapat digunakan untuk menentukan tinggi yang ditempati baris.
Daftar Pelajaran
11. Layout Daftar Pelajaran
Mari kita lanjutkan ke bagian daftar pelajaran. Layout HTML ditampilkan dalam gambar di bawah ini. Kita juga akan
mempelajari cara mengubah ketebalan teks.
Font-wight
CSS Property font-weight memungkinkan Anda untuk mengubah ketebalan teks. Anda dapat menentukan nilai
seperti normal dan bold. Karena tag <h1> ~ <h6> memiliki default font-weight: bold;, Anda dapat menentukan font-
weight: normal; untuk mengubah ketebalan tulisannya ke normal.
Position: absolute;
Anda dapat menggunakan CSS position: absolute; untuk membuat element bertumpang-tindih. Dengan position:
absolute;, Anda dapat menentukan posisinya relatif terhadap sudut kiri atas halaman web, menggunakan
property top dan left.
Position: relative;
Anda dapat mengubah titik referensi untuk position: absolute dengan menetapkan position: relative; ke element
ancestornya (element yang terhubung tapi terletak jauh diatas element induk). Dengan cara ini, element yang
memiliki position: absolute yang ditetapkan akan diposisikan relatif terhadap sudut kiri atas element ancestor.
Bagian Pesan
14. Layout Bagian Pesan
Mari kita lanjutkan ke bagian pesan dihalaman web kita. Perhatikan gambar dibawah untuk layout HTML bagian
pesan yang akan kita kerjakan.
Box-shadow
CSS property box-shadow digunakan untuk menambahkan bayangan ke element apapun. Kita dapat
menggunakannya dengan menentukan panjang horizontal, panjang vertikal, dan warnanya.
cursor
CSS property cursor dapat digunakan untuk mengubah jenis kursor mouse seperti gambar dibawah ini. Beberapa tag
HTML seperti tag <a> memiliki default CSS property cursor sebagai pointer.
:active
Selector :active dapat digunakan untuk menambahkan CSS ini pada saat element sedang diklik, pelajari contoh
dibawah ini.
Membatalkan CSS
Anda dapat menghilangkan bayangan dengan menentukan box-shadow: none;. Banyak CSS property yang dapat
dibatalkan dengan menentukan nilainya ke none.
Penggunaan position: relative;
Sebelumnya, kita telah belajar cara menggunakan position: relative; dengan position: absolute;, tetapi perannya
yang sebenarnya adalah untuk memosisikan element relatif terhadap posisi normalnya. Seperti position: absolute;,
Anda dapat menggunakan CSS property top dan left.
Menekan Tombol
Kita akan menambahkan CSS berikut untuk membuat tombol terlihat seperti telah ditekan.
・Atur box-shadow ke none
・Gunakan position: relative; dengan top untuk menurunkan posisi element sesuai panjang bayangan
Footer
17. Footer
Layout Footer
Sekarang mari kita kerjakan footer. Pelajari layout HTML untuk footer yang ditampilkan dalam gambar dibawah ini.
Memperbaiki Header
18. Memperbaiki Header
Menahan Posisi Header
Terakhir, mari kita pelajari cara menahan element diposisi tertentu, sehingga kita dapat menahan header dibagian
atas halaman bahkan saat Anda menggulir ke bawah.
z-index
CSS property z-index memungkinkan Anda mengubah urutan tumpukan element. Element dengan z-index lebih
besar akan ditampilkan di bagian atas. Perlu diingat bahwa z-index hanya akan berlaku bila digabungkan dengan
property position.
HTML & CSS Study III
Desain Web yang Responsive
1. Persiapan
Karena width ditetapkan menjadi 1170px di pelajaran sebelumnya, halaman web kita menjadi kebesaran untuk
perangkat dengan layar lebih kecil. Dengan menerapkan Desain Web Responsive, kita dapat mengoptimalkan layout
halaman web kita agar sesuai dengan setiap ukuran layar.
Media Queries
2. Menggunakan Media Queries
Media Query
Sekarang, kita akan mempelajari tentang media queries. Property CSS ini digunakan untuk mengotomatiskan
pengadaptasian halaman web sesuai dengan ukuran perangkat.
4. Box-sizing
Gambar dikiri menunjukkan apa yang akan terjadi jika padding ditambahkan ke item didalam latihan sebelumnya.
Keberadaan empat item dengan lebar 25% & padding akan menyebabkan lebar keseluruhan melebihi 100%,
sehingga item terakhir diturunkan kebaris baru. Untuk memperbaikinya, gunakan box-sizing: border-box;.
Cara Kerja box-sizing
Dengan mengatur property box-sizing ke border-box, width sebuah element akan
menyertakan padding dan border. Karena itu, layout tidak akan pecah ketika Anda
menambahkan padding atau border (berbeda halnya dengan margin).
viewport
Untuk bersiap menerapkan Desain Web Responsive ke halaman web kita, kita harus menetapkan viewport di dalam
tag <head>. Tanpa viewport, media queries tidak akan berfungsi dengan baik di tablet dan smartphone. Anda tidak
perlu mengingat isi viewport, jika Anda lupa, tinggal dicari secara online saja.
Width: 100%
Di pelajaran sebelumnya, kita telah menetapkan width menjadi 1170px, jadi ini tidak akan pas dengan perangkat
berlayar lebih kecil. Mari ganti width menjadi 100% untuk mengakomodasi semua lebar perangkat.
6. Layout Tablet
Memuat responsive.css
Kita dapat menulis media queries kita dalam stylesheet.css, namun kita akan meletakkannya dalam file yang
berbeda yaitu di responsive.css. Hal ini dilakukan agar code CSS kita lebih rapi dan mudah dibaca. Pastikan untuk
memuat tautan ke file responsive.css dibawah viewport.
Menghapus float
Mari pelajari cara menambahkan height ke element induk ketika element anak/turunan memiliki CSS property float.
Kita dapat melakukannya dengan menambahkan tag <div> yang diberikan CSS property clear: left;. clear: left; akan
membatalkan status float milik element turunan, sehingga height-nya akan kembali mempengaruhi height element
induk.
11. Max-width
Menangani Layar Extra Besar
Kita telah mempelajari cara menyesuaikan layout untuk perangkat kecil. Bagaimana dengan perangkat berlayar extra
besar?
Misalnya, jika kita melihat halaman web kita di layar berukuran 2000px, bagian pelajaran akan menjadi terlalu
renggang.
Max-width
Karena kita menetapkan width dari container menjadi 100%, maka bagian pelajaran akan menjadi terlalu luas untuk
layar yang sangat besar. Kita dapat memperbaikinya dengan menetapkan max-width. Seperti contoh dibawah, kita
telah menetapkan max-width ke 1170px, sehingga konten didalamnya akan selalu berada dalam batasan ini.
3. Flex: auto
Apa itu flex: auto
Ketika Anda menetapkan flex: auto ke suatu element, element tersebut akan meluas untuk mengisi seluruh ruang
lebar milik element induknya.
5. Media Queries
Membungkus pada Layar yang Lebih Kecil
Menggunakan media Queries
Untuk membuat situs responsive, kita akan menggunakan media queries yang telah kita pelajari di HTML Study III.
Kita akan membuat agar wrap untuk daftar item hanya dijalankan ketika lebar layar memenuhi kriteria yang telah
kita tetapkan.
6. Flex-direction
Menggunakan Satu Kolom untuk Layar Terkecil