Oto ilustracja problemu (przetestowana w przeglądarkach Firefox i Chrome):
<div style="background-color: red;"><svg height="100px" width="100" style="background-color: blue;"></svg></div>
Zwróć uwagę na dodatkową red
przestrzeń wewnątrz div
niebieskiego poniżej svg
.
Próbowałem już ustawić padding
i margin
obu elementów 0
, ale bez powodzenia.
Odpowiedzi:
Potrzebujesz
display: block;
na swoimsvg
.<svg style="display: block;"></svg>
Dzieje się tak, ponieważ elementy inline-block (takie jak
<svg>
i<img>
) znajdują się na linii bazowej tekstu. Dodatkowa przestrzeń, którą widzisz, to miejsce, które pozostało, aby pomieścić znaki zstępujące (ogon na „y”, „g” itp.).Możesz również użyć,
vertical-align:top
jeśli chcesz go zachowaćinline
lubinline-block
źródło
inline-block
elementy (takie jak<svg>
i<img>
) znajdują się na linii bazowej tekstu. Dodatkowa przestrzeń, którą widzisz, to miejsce, które pozostało, aby pomieścić znaki zstępujące (ogon na „y”, „g” itp.).vertical-align:top
line-height
, ale ustawienieline-height: 0
na svg i / lub jego pojemniku nie robi różnicy. Tylkodisplay: block
to rozwiązałem. Jest to niezła pułapka, jeśli pracujesz nad dużym SVG, ponieważ nigdy nie pomyślałbyś o nim jako o inline. Jeśli jednak masz małą ikonę, ma to sens.display: block
nie działa dla mnie, alevertical-align
taksvg
jestinline
elementem.inline
elementy pozostawiają spację.Rozwiązanie:
Dodaj
display:block
dosvg
, lub dokonać wysokość rodzica dział samo jaksvg
.DEMO tutaj.
źródło
Inną alternatywą jest dodanie
font-size: 0
do rodzica svg.źródło
Zmień
display
właściwość svg nablock
.źródło
Spróbuj dodać
height:100px
dodiv
i użyćheight="100%"
onsvg
:<div style="background-color:red;height:100px"> <svg height="100%" width="100" style="background-color:blue;"></svg> </div>
źródło
svg
góry wysokości.po prostu dodaj wysokość do głównego elementu div
<div style="background-color: red;height:100px"><svg height="100px" width="100" style="background-color: blue;"></svg></div>
źródło
Zmień swój styl na
style = "background-color: red; line-height: 0;"
źródło