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: Menetapkan Ukuran pada Gambar

Sebagai latihan awal, kita akan mengatur dimensi terlebih dahulu dari elemen gambar. Biar kami tebak, latihan ini terdengar mudah, bukan? Jika materi sebelumnya dipahami dengan baik, Anda pasti tahu hal yang perlu dilakukan di latihan ini. So, langsung saja berlatih!

Tujuan

Pada latihan sebelumnya, kita sudah menerapkan properti-properti CSS yang memanipulasi teks pada HTML. Nah, kita akan lanjut menerapkan beberapa properti lain yang dapat mengatur box model pada elemen HTML.

Pada latihan ini, kita akan mengatur tampilan gambar-gambar. Mereka berada pada seluruh elemen <article> (sejarah, geografi, dan wisata) serta elemen gambar dalam elemen <aside> (Logo Bandung).

Berikut adalah hasil akhir dari latihan ini.

Alur Latihan

Berikut adalah alur latihan kali ini.

  1. Membuka hasil latihan terakhir dengan VSCode.
  2. Menetapkan dimensi gambar-gambar artikel dan logo Kota Bandung.
  3. Memanfaatkan properti object-fit dan object-position pada elemen <img>.
  4. Menjalankan dokumen HTML pada browser.

Latihan Menetapkan Ukuran pada Gambar

Latihan ini terdiri dari beberapa topik yang saling terhubung. Untuk itu, 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. Kita akan melakukan styling pada elemen gambar yang kita miliki dengan mengubah ukuran dimensinya. Pada berkas style.css, buatlah CSS rule baru untuk selector .featured-images dengan properti dan nilai sebagai berikut.

    1. /* Kode lainnya disembunyikan... */
    2.  
    3. nav a:hover {
    4.   font-weight: bold;
    5. }
    6.  
    7. .profile header {
    8.   text-align: center;
    9. }
    10.  
    11. .featured-image {
    12.   width: 100%;
    13.   max-height: 300px;
    14. }

  3. Apakah Anda bingung dengan selector di atas? Jika ya, hal tersebut sangat wajar. Hal ini karena memang kita belum memiliki elemen dengan class bernilai featured-image. Selector tersebut perlu kita terapkan pada seluruh elemen gambar, kecuali logo Kota Bandung dalam elemen <aside>. Untuk menerapkannya, silakan tambahkan atribut class dengan nilai featured-image.

    1. <!DOCTYPE html>
    2. <html>
    3.   <head>
    4.     <!-- Kode lainnya disembunyikan... -->
    5.   </head>
    6.   <body>
    7.     <header>
    8.       <!-- Kode lainnya disembunyikan... -->
    9.     </header>
    10.     <main>
    11.       <!-- Konten artikel -->
    12.       <div id="content">
    13.         <article id="sejarah">
    14.           <h2>Sejarah</h2>
    15.           <img src="assets/image/history.jpg" alt="sejarah" class="featured-image" />
    16.           <!-- Kode lainnya disembunyikan... -->
    17.         </article>
    18.  
    19.         <article id="geografis">
    20.           <h2>Geografis</h2>
    21.           <img src="assets/image/geografis.jpg" alt="geografis" class="featured-image" />
    22.           <!-- Kode lainnya disembunyikan... -->
    23.         </article>
    24.  
    25.         <article id="wisata">
    26.           <h2>Wisata</h2>
    27.           <!-- Kode lainnya disembunyikan... -->
    28.           <section>
    29.             <h3>Farm House Lembang</h3>
    30.             <img src="assets/image/farm-house.jpg" alt="farm house" class="featured-image" />
    31.             <!-- Kode lainnya disembunyikan... -->
    32.           </section>
    33.           <section>
    34.             <h3>Observatorium Bosscha</h3>
    35.             <img src="assets/image/bosscha.jpg" alt="bosscha" class="featured-image" />
    36.             <!-- Kode lainnya disembunyikan... -->
    37.           </section>
    38.         </article>
    39.       </div>
    40.  
    41.       <!-- Konten samping -->
    42.       <aside>
    43.         <!-- Kode lainnya disembunyikan... -->
    44.       </aside>
    45.     </main>
    46.     <footer>
    47.       <p>Belajar Dasar Pemrograman Web &#169; 2019, Dicoding Academy</p>
    48.     </footer>
    49.   </body>
    50. </html>

  4. Setelah menerapkannya, tampilan gambar akan menjadi seperti berikut.

    dos:48af036015814788bf415f6de4b34b5320230620222512.jpeg

  5. Wah, apa yang telah terjadi? Tiba-tiba gambar ditampilkan secara tidak proporsional. ia ditampilkan memenuhi lebar dari viewport (jendela browser). Namun, karena kita menetapkan properti max-height jugagambar tidak ditampilkan dengan ukuran yang tidak imbang. Solusinya, kita tambahkan properti object-fit: cover dan object-position: center pada selector .featured-image.

    1. /* Kode lainnya disembunyikan... */
    2. nav a:hover {
    3.   font-weight: bold;
    4. }
    5. .profile header {
    6.   text-align: center;
    7. }
    8. .featured-image {
    9.   width: 100%;
    10.   max-height: 300px;
    11.   object-fit: cover;
    12.   object-position: center;
    13. }

  6. Kedua properti yang telah kita terapkan di atas membuat gambar yang ditampilkan dapat mempertahankan kualitas rasio aslinya meskipun ukuran lebar dan panjang dari elemen gambar tidak imbang. Namun, untuk menghasilkan perbaikan gambar ini, ada area gambar yang terpotong atau tidak ditampilkan (crop).

    dos:dd5a4bfc8b25bb42b055dec8d9a195fe20230620222512.jpeg

    Jika di antara Anda ada yang berpikir, “Jika gambar tersebut di-crop, apakah kita bisa memilih letak potongan yang ditampilkan?”. Jawabannya bisa. Kita bisa memanfaatkan object-position untuk melakukannya.

  7. Selanjutnya, kita atur juga ukuran logo Kota Bandung pada elemen <aside>. Agar logo tampak tidak terlalu besar, kita atur properti width sebesar 200px. Silakan tambahkan kode bercetak tebal berikut pada berkas style.css untuk membuat CSS rules baru dengan selector .profile img dan menulis properti width beserta nilainya.

    1. /* Kode lainnya disembunyikan... */
    2.  
    3. .profile header {
    4.   text-align: center;
    5. }
    6.  
    7. .featured-image {
    8.   width: 100%;
    9.   max-height: 300px;
    10.   object-fit: cover;
    11.   object-position: center;
    12. }
    13.  
    14. .profile img {
    15.   width: 200px;
    16. }

  8. Hasil akhir perubahan ini, logo akan tampak lebih kecil seperti berikut.

    dos:375d171fd37355e31fa61aeca471fa2b20230620222511.jpeg

Itulah latihan yang telah kita lakukan pada materi ini. Seperti biasanya, kami menyediakan beberapa referensi materi yang dapat Anda simak untuk menambah pengetahuan.

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