Вот иллюстрация проблемы (проверено в Firefox и Chrome):
<div style="background-color: red;"><svg height="100px" width="100" style="background-color: blue;"></svg></div>
Обратите внимание на дополнительное red
пространство div
под синим svg
.
Уже пробовал устанавливать padding
и margin
оба элемента 0
, но безуспешно .
Ответы:
Вам нужно
display: block;
на вашемsvg
.<svg style="display: block;"></svg>
Это связано с тем, что элементы встроенного блока (например,
<svg>
и<img>
) располагаются на базовой линии текста. Дополнительное пространство, которое вы видите, - это пространство, оставшееся для размещения нижних элементов символов (хвост на 'y', 'g' и т. Д.).Вы также можете использовать,
vertical-align:top
если вам нужно его оставитьinline
илиinline-block
источник
inline-block
элементы (например,<svg>
и<img>
) располагаются на базовой линии текста. Дополнительное пространство, которое вы видите, - это пространство, оставшееся для размещения нижних элементов символов (хвост на 'y', 'g' и т. Д.).vertical-align:top
line-height
, но установкаline-height: 0
svg и / или его контейнера не имела никакого значения. Толькоdisplay: block
решил это. Это такая ошибка, если вам случится работать с большим SVG, потому что вы никогда не подумаете о нем как о встроенном. Однако, если у вас есть маленькая иконка, это имеет смысл.display: block
не работает для меня, ноvertical-align
сделалsvg
этоinline
элемент.inline
элементы покидают пробел.Решение:
Добавить
display:block
кsvg
, или высота делают из родительского DIV так же , какsvg
.ДЕМО здесь.
источник
Другой вариант - добавить
font-size: 0
к svg parent.источник
Измените
display
свойство svg наblock
.источник
Попробуйте добавить
height:100px
кdiv
и используяheight="100%"
наsvg
:<div style="background-color:red;height:100px"> <svg height="100%" width="100" style="background-color:blue;"></svg> </div>
источник
svg
заранее не знать высоту .просто добавьте высоту к основному элементу div
<div style="background-color: red;height:100px"><svg height="100px" width="100" style="background-color: blue;"></svg></div>
источник
Измени свой стиль на
style = "цвет фона: красный; высота строки: 0;"
источник