下面是问题的一个例子(在Firefox和Chrome中测试):

<div style="background-color: red;"><svg height="100px" width="100" style="background-color: blue;"></svg></div>

View on JSFiddle

请注意,蓝色svg下方的div中有额外的red个空格.

已经try 将这两个元素的paddingmargin设置为0,但没有成功.

推荐答案

你的svg分需要display: block;分.

<svg style="display: block;"></svg>

这是因为内联挡路元素(如第<svg>和第<img>个)位于文本基线上.您看到的额外空间是用于容纳字符下行的剩余空间(‘y’、‘g’等的尾部).

如果需要保留inlineinline-block,也可以使用vertical-align:top

Html相关问答推荐

如何将背景图像放置在窗口的最顶部?

如何访问django + tailwind中的媒体文件夹

简化指标与Delta保持一致

Tumblr博客:如何修复提交页面和询问页面框列计数问题?

如何使用html和css将两个项目垂直对齐

如何修复与导航栏重叠的css网格?

标签数据的XPath?

当我关闭时,导航栏跳到了新的生产线

如何使用Reaction Js读取html文件中的代码

我正在try 向列表中的图像添加悬停,以放大图像并将div的不透明度设置为1而不是0

角化、剪裁、边缘,但仅在底部2和平滑包装上

下划线在 Bootstrap 5 导航链接下无法正常工作

在Firefox中使用keySplines时,SVG: <animateMotion>不起作用

如何垂直平移一个元素,使其新位置位于另外两个元素之间?

使用 css 将内容居中并向左对齐?

如何通过可见文本使用 Selenium 定位元素

如果不透明的元素出现在下方,为什么不透明度会使一个元素出现在另一个元素上方?

使元素扩展宽度减go margin-right

动态使用时波浪号不转换为绝对路径

水平滚动框不显示所有元素