1

我在 PHP 脚本中有这段代码,由 Apache 提供。

<?php
header('Content-type: application/xhtml+xml');
?>
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title>SVG in text/html</title>
</head>
<body>
<svg xmlns="http://www.w3.org/2000/svg" version="1.1">
   <g width="100%" height="100%" transform="matrix(1, 0, 0,1,683,285)" buffered-rendering="dynamic">
   <line y2="208" x2="85" y1="10" x1="24" stroke="#999"></line></g></svg>

</body>
</html>

该脚本在 Chrome 中运行良好(在屏幕上绘制一条直线)。然而,Firefox (18.0.2) 似乎根本没有渲染它。我只看到一个空白的白色屏幕。

我一直在绞尽脑汁想弄清楚这一点,但是对于我的一生,我无法理解为什么会发生这种情况。有任何想法吗?我已经浏览了有关该主题的所有 stackexchange 帖子,但没有一个对我有帮助

编辑:我忘了提一下:一旦我删除了“transform = ...”属性,它就可以正常工作,但我需要它来做我的计划。

4

1 回答 1

2

您没有指定任何宽度或高度,因此 SVG 为 300 x 150 像素(Chrome 弄错了),并且 html 和 body 也不扩展。这似乎更像你想要的。

<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml" style="width: 100%; height: 100%">
<head>
<title>SVG in text/html</title>
</head>
<body style="width: 100%; height: 100%">
<svg xmlns="http://www.w3.org/2000/svg" version="1.1" width="100%" height="100%">
   <g width="100%" height="100%" transform="matrix(1, 0, 0,1,683,285)" buffered-rendering="dynamic">
   <line y2="208" x2="85" y1="10" x1="24" stroke="#999"></line></g></svg>

</body>
</html>
于 2013-02-08T09:56:35.763 回答