Saya pernah membaca di suatu tempat bahwa <img>
elemen berperilaku seperti keduanya. Jika benar, dapatkah seseorang menjelaskan dengan contoh?
Saya pernah membaca di suatu tempat bahwa <img>
elemen berperilaku seperti keduanya. Jika benar, dapatkah seseorang menjelaskan dengan contoh?
Jawaban:
Memang benar, keduanya - atau lebih tepatnya, mereka adalah elemen "inline block". Ini berarti bahwa mereka mengalir inline seperti teks, tetapi juga memiliki lebar dan tinggi seperti elemen blok.
Di CSS, Anda dapat mengatur elemen display: inline-block
untuk membuatnya mereplikasi perilaku gambar *.
Gambar dan objek juga dikenal sebagai elemen "diganti", karena mereka tidak memiliki konten sendiri, elemen tersebut pada dasarnya digantikan oleh data biner.
* Perhatikan bahwa browser secara teknis menggunakan display: inline
(seperti yang terlihat pada alat pengembang) tetapi mereka memberikan perlakuan khusus untuk gambar. Mereka masih mengikuti semua sifat inline-block
.
img
unsur-unsur bukan inline-block
tetapi sebenarnya inline
unsur. Anda dapat memeriksanya di peramban modern dengan mengklik kanan gambar, mengeklik "Periksa elemen", lalu melihat gaya yang dihitung, yang akan ditampilkan display: inline
. Tidak ada konteks blok yang terjadi di dalam tag, jadi tidak benar untuk menyebutnya inline-block
. Untuk informasi lebih lanjut tentang elemen inline yang diganti lihat jawaban Quentin dan artikel MDN ini .
img
unsur-unsur sebaris - perangkat Google Chrome dev menunjukkan img
unsur-unsur sebagai sebaris. Posting ini adalah satu-satunya tempat yang saya temukan sejauh ini yang mengatakan bahwa mereka inline-block
sebaliknya. Menariknya, saya belum menemukan otoritas yang mengatakan mereka inline
juga. Apakah cara memperlakukan tag bergantung pada implementasi, mungkin?
display:inline-block
.
Suatu img
elemen adalah elemen inline yang diganti .
Berperilaku seperti elemen inline (karena itu), tetapi beberapa generalisasi tentang elemen inline tidak berlaku untuk img
elemen.
misalnya
Generalisasi: "Lebar tidak berlaku untuk elemen sebaris"
Apa yang dikatakan oleh spec : "Berlaku untuk: semua elemen kecuali elemen inline, baris tabel, dan grup baris yang tidak diganti"
Karena gambar adalah elemen inline yang diganti, itu berlaku.
Untuk hampir semua tujuan menganggapnya sebagai elemen inline dengan set lebar. Pada dasarnya Anda bebas menentukan bagaimana Anda ingin gambar ditampilkan menggunakan CSS. Saya biasanya menetapkan beberapa kelas gambar seperti ini:
img.center {display:block;margin:0 auto;}
img.left {float:left;margin-right:10px;}
img.right {float:right;margin-left:10px;}
img.border {border:1px solid #333;}
Memang benar, keduanya - atau lebih tepatnya, mereka adalah elemen "inline block". Ini berarti bahwa mereka mengalir inline seperti teks, tetapi juga memiliki lebar dan tinggi seperti elemen blok.