SVG根元素的默认背景颜色
我想为整个SVG文档设置一个默认的背景颜色,例如红色。
<svg viewBox="0 0 500 600" style="background: red">/* content */</svg>
上面的解决scheme工作,但不幸的是风格属性的背景属性不是一个标准的: http : //www.w3.org/TR/SVG/styling.html#SVGStylingProperties ,所以它在清理过程中被删除与SVG清洁器。
有没有另外一种方法来声明这种背景颜色?
SVG 1.2 Tiny具有视口填充我不确定这个属性有多广泛的实现,虽然目前大多数浏览器都是针对SVG 1.1的。 Opera实现它FWIW。
当前更多的跨浏览器的解决scheme是将宽度和高度均为100%的<rect>
元素和fill =“red”作为<svg>
元素的第一个子元素
在Safari中find了这个工程。 SVG只在背景色中用元素的边界框覆盖。 所以,给它一个零像素边界的边界(中风)。 它用你的背景色为你填充整个事物。
<svg style='stroke-width: 0px; background-color: blue;'> </svg>
我目前正在处理这样一个文件:
<?xml version="1.0" encoding="UTF-8" standalone="no"?> <?xml-stylesheet type="text/css" href="style.css" ?> <svg xmlns="http://www.w3.org/2000/svg" version="1.1" width="100%" height="100%" viewBox="0 0 600 600"> ...
我试图把它放到style.css
:
svg { background: #bf1f1f; }
它正在使用Chromium和Firefox,但我认为这不是一个好的做法 。 EyeOfGnome图像查看器不会渲染它,Inkscape使用特殊的命名空间来存储这样的背景:
<?xml version="1.0" encoding="UTF-8" standalone="no"?> <svg xmlns="http://www.w3.org/2000/svg" xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" version="1.1" ... <sodipodi:namedview pagecolor="#480000" ... >
那么,SVG根元素似乎不是SVG推荐中可绘制元素的一部分。
所以我build议使用Robert Longson提供的“rect”解决scheme,因为我猜这不是一个简单的“黑客”。 这似乎是用SVG设置背景的标准方法 。
另一个解决方法可能是使用相同大小的<div>
来包装<svg>
。 之后,您将能够应用将影响svg
"background-color"
和"background-image"
。
<div class="background"> <svg></svg> </div> <style type="text/css"> .background{ background-color: black; /*background-image: */ } </style>
这是@Robert Longson的答案,现在用代码:
<?xml version="1.0" encoding="UTF-8"?> <svg version="1.1" xmlns="http://www.w3.org/2000/svg"> <rect width="100%" height="100%" fill="red"/> </svg>