【问题标题】:why parent element has additional space [duplicate]为什么父元素有额外的空间[重复]
【发布时间】:2017-12-22 06:27:51
【问题描述】:

您好,我在 div 元素中有 svg 矩形。我已经将rect元素高度设置为300。在检查父元素(div)高度时显示为304,为什么?

<div>
<svg width="300" height="300">
  <rect width="300" height="300" style="fill:rgb(0,0,255);stroke-width:3;stroke:rgb(0,0,0)" />
</svg>

 </div>

示例链接:http://jsfiddle.net/mkn9t627/7/

【问题讨论】:

  • 它有任何来自 CSS 的额外样式吗?喜欢边框还是填充?
  • @MarkHünermundJensen 未添加样本
  • @MarkHünermundJensen jsfiddle.net/mkn9t627/7

标签: javascript html svg


【解决方案1】:

开始标签和结束标签之间有空格。将 parent 的 font-size 设置为 0,它将在检查器中显示 300px。

div {
  font-size: 0;
}
<div>
  <svg width="300" height="300">
  <rect width="300" height="300" style="fill:rgb(0,0,255);stroke-width:3;stroke:rgb(0,0,0)" />
</svg>
</div>

【讨论】:

  • 好的,但如果我在 div 中有文本,则在您的场景中,文本不会显示。
  • 如果你在 div 上定义了 300px,它会监听它。我知道也许有一个更笼统的问题,但这至少似乎解决了长期存在的问题
  • 这才是真正的 Akbar,除非您将该文本放在一个元素中并在其上设置字体大小。
【解决方案2】:

您需要为 svg 元素设置 display: block,因为默认情况下它是内联的。这是您问题的一个很好的答案:Look here

【讨论】:

  • 您可以说 svg 元素默认为 display: inline 并包含链接作为参考。
猜你喜欢
  • 1970-01-01
  • 2016-05-10
  • 2013-12-18
  • 2019-08-19
  • 2016-09-30
  • 1970-01-01
  • 2023-01-03
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多