2014-07-22 41 views
0

当SVG元素添加属性(width,height,viewBox)时,是否有人能够提供对矩形和文本相对大小变化的解释? (在Firefox 30测试在Linux x86_64的)SVG文本和矩形的相对大小

<!DOCTYPE html> 
<html lang="en"> 
<head> 
    <meta charset="utf-8" /> 
    <meta name="viewport" content="width=device-width, initial-scale=1.0" /> 

    <title>Test</title> 
    <script src="jquery.js"></script> 
    <script src="d3.js"></script> 
</head> 

<body> 

    <svg> 
    <g transform="translate(10, 10)"> 
     <rect fill="yellow" height="7.45em" width="29.4em"></rect> 
     <text stroke="black"> 
      <tspan dy="1.69em" x="2.65em">PNUUUUUUUUU</tspan> 
      <tspan dy="1.69em" x="2.65em">TEST TEST TEST TEST TEST</tspan> 
      <tspan dy="1.69em" x="2.65em">EEE</tspan> 
      <tspan dy="1.69em" x="2.65em">QQQ</tspan> 
     </text> 
    </g> 
    </svg> 
</body> 

</html> 

显示为期望的:

enter image description here

改变svg元素到 <svg width="400px" height="300px">

<svg width="400px" height="300px" viewBox="0 0 400 300">

给出了这样的结果:

enter image description here

+0

这似乎是与默认的字体和大小有关。 –

回答

1

参见:http://www.impressivewebs.com/understanding-em-units-css/

如果不设置字体大小的文档(CSS或HTML文件)中的任何位置,然后在“EM”将相对于字体的由网络所使用的尺寸浏览器。

在谷歌浏览器中,这是在网页内容 - >字体大小下的设置。

+0

+1链接提到1em不一定是M的宽度。根据示例文本中使用的字符,结果会有很大差异 - 尽管矩形的宽度与文本中的更改保持不变。因此,看起来Firefox实际上正在做它认为是正确的事情,但如果我将字体更改为固定宽度的字体(例如Courier),则矩形并不会奇怪地改变大小。 –

+0

将这些信息和可能的例子放入你的答案 –