所以,我正在尝试做这样的事情:
div {
width: 100px;
height: 100px;
background-position: center center;
background-repeat: no-repeat;
background-size: 100px 100px;
background-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='100' height='100' style='fill:red; stroke:none'><rect x='0' y='40' width='100' height='20' /><rect x='40' y='0' width='20' height='100' /></svg>");
}
在当前版本的Chrome,Safari(OS X和iOS)和Firefox中,这可以很好地工作。但是,SVG根本不会出现在IE 9、10或11中。
是因为IE不支持此功能,还是因为我做错了什么?
[解决方案更新]
多亏了hungerstar,我才能完成这项工作。总结他的建议,我需要进行以下更改:
将数据类型从更改data:image/svg+xml;utf8
为data:image/svg+xml;charset=utf8
(即charset=
必填)
URL编码svg。为了最大程度地减少URL编码,请使用'
而不是"
将属性括起来。所以,在我的情况下,只有<
和>
需要进行编码。
最终,我的CSS看起来像这样:
background-image: url("data:image/svg+xml;charset=utf8,%3Csvg xmlns='html" target="_blank">http://www.w3.org/2000/svg' width='100' height='100' style='fill:red; stroke:none' %3E%3Crect x='0' y='40' width='100' height='20' /%3E%3Crect x='40' y='0' width='20' height='100' /%3E%3C/svg%3E");
IE似乎确实支持utf8
在数据URI中使用,只是对此更加 挑剔。但以下是重点内容:
作者指向RFC2397并强调:
数据:[
] [; base64],
是Internet媒体类型规范(带有可选参数)。出现“; base64”表示数据被编码为base64。如果不使用“;
base64”,则数据(作为八位字节序列)使用ASCII编码表示安全URL字符范围内的八位字节,并使用标准%xx十六进制URL编码表示超出该范围的八位字节。如果省略,则默认为text
/ plain; charset = US-ASCII。作为简写,可以省略“文本/纯文本”,但提供了charset参数。
;charset=utf8,
而不是;utf8,
。<svg>
以%3Csvg%3E
。您可以使用单引号'
而不是双引号来最小化需要完成的百分比编码量"
。问题内容: 如果选择了该面板(单击该面板),则该面板的颜色为蓝色。另外,我在该面板上添加了一个小标志(图像),它表示所选面板之前已被选中。 因此,如果用户看到例如10个面板,其中有4个带有这个小标记,则他知道自己之前已经单击了这些面板。到目前为止,这项工作还不错。现在的问题是我无法显示小标志并使面板同时变为蓝色。 我使用css将面板设置为蓝色,使用设置背景图像。但是背景色似乎在图像上方,因此您看不
问题内容: 我一直在尝试在背景图片的顶部使用线性渐变,以使背景底部的阴影效果从黑色变为透明,但似乎无法使其显示。 我在这里阅读了其他案例和示例,但没有一个对我有用。我只能看到渐变或图像,但不能全部看到。 只需单击第一个徽标,就忽略该效果,此后我要尝试的是整个网站的正文。 这是我的CSS代码: 问题答案: 好的,我通过 在行尾 添加背景图片的网址来解决此问题。 这是我的工作代码:
问题内容: 应该是一个相当简单的问题。在我的网站上,我这样做: 我想做的是使背景图像变暗。由于我在该DIV中包含UI元素,因此我认为我真的不能在其上放置另一个div来使其变暗。有什么建议吗? 问题答案: 您可以将CSS3 LinearGradient属性与背景图像一起使用,如下所示: 这是一个演示:
问题内容: 我有一条通用规则,该规则为所有DIV提供背景图像。 我有一个div(id =’a’),但我不希望它具有背景图像。 我必须给它什么CSS规则? 问题答案: 尝试:
问题内容: 如何在HTML顶部重复此1px x 1px CSS背景图像? 我在[其他包含的元素之上遇到了CSSshowdiv背景图片,但是似乎需要额外的div。理想情况下,我希望我根本不必使用div,但是根据HTMLimg上的[CSS背景图像这实际上是不可能的,至少对于100%宽度响应的场景而言并非如此。 问题答案: 您可以使用伪元素。在此示例中,伪元素 相 对于父元素绝对定位。它采用整个父元素的
问题内容: 这是我的CSS脚本 我想把整个细胞伸展 问题答案: .style1 { background: url(images/bg.jpg) no-repeat center center fixed; -webkit-background-size: cover; -moz-background-size: cover; -o-background-size: cover; backgrou