Belajar Dasar Pemrograman Web

Tools

Dibantu
Dibantu

Halo, selamat datang :)
Kenalin aku Dibantu, bot yang akan membantu kamu mengatasi permasalahan di modul ini.

Lihat forum diskusi

Latihan: Menerapkan Float pada Elemen Content dan Aside

Teknik layouting dengan float telah kita pelajari. Saatnya, kita lakukan layouting pada proyek studi kasus kita, yaitu Halaman Profil. Kuy!

Tujuan

Kita akan melakukan layouting atau pengubahan tata letak konten halaman web pada latihan ini. Layouting dilakukan pada elemen <div id="content"> dan <aside> agar mereka ditampilkan sejajar secara horizontal. 

Sebagaimana telah dipelajari sebelumnya, kita akan memanfaatkan properti float. Bahkan, Anda sudah melihat pada contoh kasus kecil cara untuk menjajarkan dua elemen secara horizontal. Nah, cara yang dilakukan pada latihan ini seharusnya tidak jauh berbeda.

Berikut adalah hasil akhir dari latihan ini.

dos:4c3d25f85e89886df28d609c55a7b82520230621231348.jpeg

Alur Latihan

Berikut adalah alur latihan kali ini.

  1. Membuka hasil latihan terakhir dengan VSCode.
  2. Melakukan relayouting halaman web dengan teknik float.
  3. Memperbaiki masalah collapse elemen yang terjadi karena float menggunakan overflow auto.
  4. Mempertahankan konsistensi ukuran dimensi elemen dengan box-sizing border-box.
  5. Menjalankan dokumen HTML pada browser.

Latihan Menerapkan Float pada Elemen Content dan Aside

Berikut adalah daftar langkah latihan yang perlu diikuti dan disimak agar latihan berjalan dengan baik.

  1. Silakan buka proyek Halaman Profil terakhir dengan VSCode. Jika belum memilikinya, silakan Anda unduh dan buka proyek tersebut pada GitHub repository ini.
  2. Silakan buka berkas style.css dan buat CSS rule baru dengan selector #content serta berikan properti float dengan nilai left. Kode yang ditambahkan memiliki cetakan tebal.

    1. /* Kode lainnya disembunyikan... */
    2.  
    3. nav {
    4.   background-color: #00a2c6;
    5.   padding: 5px;
    6. }
    7.  
    8. main {
    9.   padding: 20px;
    10. }
    11.  
    12. #content {
    13.   float: left;
    14. }

  3. Tambahkan juga nilai lebar elemennya. Pada kasus ini, kita pakai nilai 75% untuk menetapkan lebar #content.

    1. /* Kode lainnya disembunyikan... */
    2.  
    3. nav {
    4.   background-color: #00a2c6;
    5.   padding: 5px;
    6. }
    7.  
    8. main {
    9.   padding: 20px;
    10. }
    11.  
    12. #content {
    13.   float: left;
    14.   width: 75%;
    15. }

  4. Ketika dibuka hasilnya pada browser, tampilan akan menjadi berantakan seperti berikut.

    dos:1f1830df0326a166f599cbd4e06189c920230620212702.jpeg

  5. Hal tersebut normal karena kita belum menetapkan nilai float pada elemen <aside>. Oleh karena itu, elemen <aside> dan <footer> akan berpindah menempati ruang yang sebelumnya digunakan oleh #content karena permasalahan keluar dari normal flow.

    Kita akan mengatasi masalah di atas secara bertahap. Selanjutnya, kita terapkan juga properti float dengan nilai right pada elemen <aside>.

    1. /* Kode lainnya disembunyikan... */
    2.  
    3. nav {
    4. background-color: #00a2c6;
    5. padding: 5px;
    6. }
    7.  
    8. main {
    9. padding: 20px;
    10. }
    11.  
    12. #content {
    13.   float: left;
    14.   width: 75%;
    15. }
    16.  
    17. aside {
    18.   float: right;
    19. }

  6. Jangan lupa juga tetapkan ukuran lebar pada elemen <aside>. Elemen content sudah menerapkan 75% lebar dari parent sehingga elemen <aside> hanya dapat memiliki 25% ruang yang tersedia untuk ditempati. Silakan tetapkan nilai 25% pada properti width untuk elemen ini.

    1. /* Kode lainnya disembunyikan... */
    2.  
    3. nav {
    4. background-color: #00a2c6;
    5. padding: 5px;
    6. }
    7.  
    8. main {
    9. padding: 20px;
    10. }
    11.  
    12. #content {
    13.   float: left;
    14.   width: 75%;
    15. }
    16.  
    17. aside {
    18.   float: right;
    19.   width: 25%;
    20. }

  7. Jika hasil perubahan dijalankan, tampilan akan menjadi lebih mengerikan seperti berikut dari sebelumnya.

    dos:a3701c083dfb308f96266daab2af6b6120230620212702.jpeg

  8. Hasil di atas terjadi karena tinggi dari elemen <main> sebesar 0 piksel. Mengapa elemen ini menjadi seperti demikian? Hal ini karena elemen #content dan <aside> dianggap tidak ada oleh elemen <main> (parent element) sehingga elemen di bawahnya (<footer>) akan naik mengisi ruang kosong. Agar tidak seperti demikian, kita perlu tetapkan overflow: auto pada elemen <main>.

    Silakan tambahkan properti overflow dengan nilai auto pada selector main yang sudah kita miliki sebelumnya.

    1. /* Kode lainnya disembunyikan... */
    2.  
    3. nav li {
    4.   display: inline;
    5.   list-style-type: none;
    6.   margin-right: 20px;
    7. }
    8.  
    9. nav {
    10.   background-color: #00a2c6;
    11.   padding: 5px;
    12. }
    13.  
    14. main {
    15. padding: 20px;
    16.  
    17.   overflow: auto;
    18. }
    19.  
    20. #content {
    21.   float: left;
    22.   width: 75%;
    23. }
    24.  
    25. aside {
    26.   float: right;
    27.   width: 25%;
    28. }

  9. Setelah itu, tampilan website sudah lebih baik dan elemen <footer> sudah berada pada posisi yang seharusnya.

    dos:dc5071fbd302a41f10e4bebabc58eb2520230620212701.jpeg

  10. Namun, kita perlu memberikan sedikit jarak horizontal antara <div id="content"> dan <aside> agar tidak tampak berhimpitan. Solusinya, tambahkan padding-left pada <aside> agar konten yang ditampilkan dapat rata ke kiri.

    Silakan tambahkan properti padding-left dengan nilai 20px pada selector aside.

    1. /* Kode lainnya disembunyikan... */
    2.  
    3. #content {
    4.   float: left;
    5.   width: 75%;
    6. }
    7.  
    8. aside {
    9.   float: right;
    10.   width: 25%;
    11.  
    12.   padding-left: 20px;
    13. }

  11. Setelah melakukan perubahan dan membuka kembali hasilnya pada browser, seharusnya tampilan website akan tampak seperti berikut jika halamannya digulir ke bawah.

    dos:a8b545c93e5ef5124a223879a874964820230620212701.jpeg

  12. Ups! Letak elemen <aside> berada di bawah #content sekarang. Hal ini karena kita menambahkan padding pada <aside> sehingga lebar elemen sudah bukan 25% lagi.

    Untuk mengatasinya, kita bisa ubah tipe pengukuran untuk dimensi kotaknya (elemen). Masih ingat materi tentang box-sizing, kan? Dengan menerapkan nilai border-box pada properti ini, kita dapat menentukan dimensi kotak dengan tepat, tanpa dipengaruhi oleh padding dan border.

    Mari kita tetapkan pengukuran box-sizing untuk seluruh elemen HTML dengan menggunakan universal selector seperti berikut.

    1. * {
    2.   box-sizing: border-box;
    3. }
    4.  
    5. body {
    6.   font-family: 'Quicksand', sans-serif;
    7.   margin: 0;
    8.   padding: 0;
    9. }
    10.  
    11. h2,
    12. h3 {
    13.   color: #00a2c6;
    14. }
    15.  
    16. /* Kode lainnya disembunyikan... */

  13. Setelah menetapkan rule tersebut, tampilan website akan kembali normal.

    dos:4bb1a8b1b9c156b7381726200574f77620230620212702.jpeg


Demikian latihan yang sudah kita lakukan. Kita menghadapi rintangan dalam styling Halaman Profil. Cukup menegangkan, bukan? Untuk itulah kita perlu memahami berbagai penerapan CSS dengan baik dan benar.

Nah, untuk selanjutnya, kita masih berlatih untuk meningkatkan styling proyek studi kasus kita. Terus berjuang dan semangatlah!

Dibantu
Dibantu

Halo, selamat datang :)
Kenalin aku Dibantu, bot yang akan membantu kamu mengatasi permasalahan di modul ini.

Lihat forum diskusi

Catatan Belajar

ini konten buat note nanti
Keyboard Shortcut
1
Next/prev modul

Membantu untuk mempermudah navigasi antar modul.

Tekan
CTRL / CTRL
2
Mencari Konten

Membantu menemukan konten dengan lebih cepat.

Tekan
CTRL/
3
Melihat daftar modul

Membantu melihat modul lebih cepat.

Tekan
CTRLM
Pengaturan

Belajar programming dengan terstruktur.

Light

Belajar programming dengan terstruktur.

Warm

Belajar programming dengan terstruktur.

Dark
Daftar Modul

84% Selesai