【发布时间】:2012-10-12 03:48:10
【问题描述】:
我需要将以下内联 SVG 过滤器注入到我的 HTML5 文档中:
<svg>
<defs>
<filter id="grayscale">
<feColorMatrix type="matrix" values="0.3333 0.3333 0.3333 0 0 0.3333 0.3333 0.3333 0 0 0.3333 0.3333 0.3333 0 0 0 0 0 1 0">
</filter>
</defs>
</svg>
我尝试将它放在<html> 标签之外,但这不起作用。它会在显示页面的开头或结尾留下很大的空白区域,具体取决于我放置它的位置。
我尝试将它放在<head> 或<body> 标记的开头,但这也会在显示文档的开头留下很大的空白。
在 SVG 对象上设置 display: none; 将阻止过滤器工作。
我还尝试将<svg> 的width 和height 属性设置为零,但这仅在我将svg 对象的CSS 设置为display: block; 时才有效。
例如:
<!DOCTYPE html>
<html>
<head>
...
<svg> ... </svg>
</head>
...
</html>
目前,我的临时解决方法是使用 css 尝试隐藏它:
svg {
height: 0;
position: absolute;
}
如何防止 SVG 对象干扰我的 HTML 布局(不使用这个 css 技巧)?
【问题讨论】: