Berikut ilustrasi masalah (diuji di Firefox dan Chrome):
<div style="background-color: red;"><svg height="100px" width="100" style="background-color: blue;"></svg></div>
Perhatikan red
ruang ekstra di dalam bagian div
bawah biru svg
.
Sudah mencoba pengaturan padding
dan margin
dari kedua elemen ke 0
, tetapi tidak berhasil.
Jawaban:
Anda perlu
display: block;
pada Andasvg
.<svg style="display: block;"></svg>
Ini karena elemen blok-sebaris (seperti
<svg>
dan<img>
) berada di garis dasar teks. Ruang ekstra yang Anda lihat adalah ruang yang tersisa untuk mengakomodasi keturunan karakter (ekor pada 'y', 'g' dll).Anda juga bisa menggunakan
vertical-align:top
jika perluinline
atauinline-block
sumber
inline-block
elemen (seperti<svg>
dan<img>
) berada pada baseline teks. Ruang ekstra yang Anda lihat adalah ruang yang tersisa untuk mengakomodasi keturunan karakter (ekor pada 'y', 'g' dll).vertical-align:top
line-height
, tetapi pengaturanline-height: 0
pada svg dan / atau wadahnya tidak membuat perbedaan. Hanyadisplay: block
menyelesaikannya. Ini adalah kesalahan besar jika Anda kebetulan mengerjakan SVG besar karena Anda tidak akan pernah menganggapnya sebagai inline. Namun, jika Anda memiliki ikon kecil, itu masuk akal.display: block
tidak berhasil untuk saya, tetapivertical-align
berhasilsvg
adalah sebuahinline
elemen.inline
elemen meninggalkan ruang putih.Larutan:
Tambahkan
display:block
kesvg
, atau buat tinggi div induk sama dengansvg
.DEMO di sini.
sumber
Alternatif lain adalah menambahkan
font-size: 0
ke orang tua svg.sumber
Ubah
display
properti svg menjadiblock
.sumber
Coba tambahkan
height:100px
kediv
dan gunakanheight="100%"
padasvg
:<div style="background-color:red;height:100px"> <svg height="100%" width="100" style="background-color:blue;"></svg> </div>
sumber
svg
sebelumnya.cukup tambahkan tinggi ke elemen div utama
<div style="background-color: red;height:100px"><svg height="100px" width="100" style="background-color: blue;"></svg></div>
sumber
Ubah gaya Anda menjadi
style = "background-color: red; line-height: 0;"
sumber