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 Sticky Position pada Navigation List

Wah, ternyata ada satu latihan kita dalam modul ini yang masih belum dilakukan. Ada satu fitur lagi yang akan kita terapkan dan kami yakin dapat membuat Anda takjub. Penasaran, kan? Langsung saja, ini dia!

Tujuan

Ada satu fitur yang mungkin perlu diterapkan lagi pada halaman profil yang kita buat. Pada halaman profil, ada daftar navigasi untuk mengarahkan user pada informasi yang dipilih secara langsung. Namun, navigasi tersebut agak repot diakses ketika pengguna berada di bagian bawah halaman setelah melakukan scrolling. Hal ini karena navigasi tersebut selalu berada pada tempatnya atau tidak berpindah (di bawah jumbotron website). User perlu scroll/kembali ke atas untuk meraihnya.

Dari permasalahan di atas, sepertinya kita perlu mengatur navigasi agar menempel pada jendela browser sehingga navigasi dapat tetap dicakup oleh pengguna untuk digunakan.

Terdapat satu nilai properti position yang belum dibahas pada pembahasan positioning, yaitu sticky positioning. Ini merupakan nilai “kombinasi” dari relative positioning dan fixed positioning. Dengan ini, membuat navigasi dapat melekat pada jendela browser (layaknya fixed position), tetapi posisi awalnya tetap menepati posisi di tempat ia seharusnya berada (layaknya relative position).

Jadi, tampilan navigasi dapat dimunculkan seperti hasil pada gambar berikut.


Alur Latihan

Berikut adalah alur latihan kali ini.

  1. Membuka hasil latihan terakhir dengan VSCode.
  2. Menerapkan position sticky pada elemen <nav>.
  3. Menerapkan display inline pada elemen <header> agar elemen <nav> dapat tertahan dan keluar dari elemen tersebut.
  4. Menjalankan dokumen HTML pada browser.

Latihan Menerapkan Sticky Position pada Navigation List

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

  1. Silakan buka proyek Halaman Profil terakhir dengan VSCode.
  2. Pertama, kita tambahkan properti position dengan nilai sticky dan top dengan nilai 0 pada elemen <nav>.

    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. position: sticky;
    14. top: 0;
    15. }
    16.  
    17. main {
    18.   padding: 20px;
    19.  
    20.   overflow: auto;
    21. }
    22.  
    23. /* Kode lainnya disembunyikan... */

    Nilai top: 0 diperlukan agar elemen navigasi selalu berada di atas jendela browser saat user melakukan scrolling.

  3. Namun, ini masih belum cukup dan berhasil. Navigasi bar masih belum tertahan ketika user menggulir halaman website. Bagaimana agar navigasi dapat menempel pada seluruh halaman?

    Pada latihan sebelumnya, kita telah membuat elemen <header> sebagai induk dari elemen <nav> dan elemen <div> yang memiliki atribut class dengan nilai jumbotron. Elemen <header> tersebut perlu diterapkan properti display dengan nilai inline. Silakan tuliskan rule berikut pada berkas style.css.

    1. /* Kode lainnya disembunyikan... */
    2.  
    3. aside {
    4.   float: right;
    5.   width: 25%;
    6.   padding-left: 20px;
    7. }
    8.  
    9. header {
    10.   display: inline;
    11. }
    12.  
    13. @media screen and (max-width: 1000px) {
    14.   #content,
    15.   aside {
    16.     width: 100%;
    17.     padding: 0;
    18.   }
    19. }

  4. Setelah menerapkannya, navigasi pada halaman profil akan tampak seperti pada gif berikut.

Menakjubkan! Anda sudah menyelesaikan latihan ini untuk mencegat elemen navigasi tetap tampil pada viewport atas. Kali ini, user sangat senang dan tidak repot lagi untuk meraih daftar navigasi. Sebagai referensi lain, Anda dapat memperkaya pengetahuan dengan mengacu pada Sticky positioning dari MDN.

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