2014-07-22 46 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

將這些信息和可能的例子放入你的答案 –