我的网站使用数据uri:s来减少对我网站的HTTP请求数。问题是数据uri:s在IE7中不起作用,IE7是我们必须支持的浏览器(不,我们不需要IE6)。我跟着Stoyan's guide实际上已经开始工作了,但是在最近的一次Microsoft安全更新(KB2544893,如comment on the original article中所述)之后,回退似乎已经停止了。
上面引用的评论表明我应该尝试使用Content-Type message / rfc822发送MSHTML文件,但是我也无法使用它,并且我在几个小时的课程中尝试了多种不同的方式。 / p>
所以我的问题是这个:你能让Stoyan描述的技术以某种方式工作吗?我真的很感激一个工作的例子来说服我真的有可能。
答案 0 :(得分:3)
我个人会使用条件样式。在主标记中 - 按如下方式启动:
<!DOCTYPE html>
<!--[if IE 7]> <html lang="en-us" class="ie7"> <![endif]-->
<!--[if IE 8]> <html lang="en-us" class="ie8"> <![endif]-->
<!--[if gt IE 8]><!--> <html lang="en-us"> <!--<![endif]-->
在您的CSS中,您现在可以:
.myClass {
background-image: url(/*DATAURI GOES HERE*/);
}
和
.ie7 .myClass {
background-image: url(fallback-image.png);
}
<强>更新强>
除了下面的评论之外,如果你担心IE7的性能 - 一个可靠的方法就是制作你的IE7 fallback image a sprite。
这样你只为IE7用户增加了1次HTTP调用:
.ie7 .myClass {
background-image: url(fallback-sprite.png);
background-position: 150px 15px;
}
答案 1 :(得分:3)
我接触了Stoyan Stefanov(该技术的原作者),并修复了他原来的例子,现在它可以工作了。只需添加“message / rfc822”作为内容类型即可。
修复示例:http://www.phpied.com/files/datasprites/testhover2.html
我让他在这里发表评论,所以我可以奖励积分,但他不想。
答案 2 :(得分:0)