html – svg元素上的伪边

我有一个非常简单的文件(另见 JSFiddle):
<style>
html,body,svg,div {
    margin: 0;
    padding: 0;
    border: 0;
}
</style>
<body>
<svg id="foo"
   xmlns="http://www.w3.org/2000/svg"
   version="1.1"
   style="width: 768px; height: 1004px;">
</svg>
</body>

由于某些原因,svg元素的底边距为3像素或4像素(即body元素的高度为1007像素,1008像素甚至1009像素;当使用浏览器调试工具进行检查时,svg边距本身为0).

如果我用一个div替换svg,则虚假的边缘消失. Opera 12,Chrome 33,Firefox 26和Internet Explorer 11的行为是一致的,所以我相信行为是符合设计和标准的,我只是不明白.

解决方法

这是内联元素的常见问题.要解决这个问题,只需添加vertical-align:top.

UPDATED EXAMPLE HERE

#foo {
    background: #fff;
    vertical-align:top;
}

值得注意的是,vertical-align属性的默认值为baseline.这解释了默认行为.诸如顶部,中间和底部的值将校正对齐.

或者,您可以使元素块级别. (example)

相关文章

操作步骤 1、进入elasticsearch的plugin,进入ik。进入config。 2、在config下面建立以.dic为后缀的字典...
lengend data数据中若存在&#39;&#39;,则表示换行,用&#39;&#39;切割。
代码实现 option = { backgroundColor: &amp;#39;#080b30&amp;#39;, tooltip: { trigger: &...
问题原因 原因在于直接在js中取的变量并复制给var变量。 于是就变成这样。 解决办法 var data = &#...
前言 最近做了一个调查问卷导出的功能,需求是将维护的题目,答案,导出成word,参考了几种方案之后,选...
对于很多人来说,用字符编码都是熟能生巧,而不清楚为什么是那样的字符编码,所以我在这列了一个表,翻...