【问题标题】:IE9 setting background-image to "none" via inline styleIE9 通过内联样式将背景图像设置为“无”
【发布时间】:2012-08-14 06:45:55
【问题描述】:

我目前正在开发的网站是http://rattscallion.com/ 我正在努力使该网站在 IE 中看起来正确。

我在获取页面上的框架时遇到了问题(查看 /murals.html 以获得我正在处理的页面)。 IE9 表示内联样式声明背景图像是“无”,因此它划掉了原始背景图像。我想它可能是从主样式表的某个地方得到的,所以我所做的是制作一个只存在于 IE 中的新框架,并只在 IE 样式表中设置它的样式。不幸的是,这也不起作用......它仍然说内联样式将背景图像设置为“无”,但没有这样的事情!

我仔细检查过,这是在 IE9 标准模式下发生的。那么为什么会这样呢?谁能帮助弄清楚如何“强制”它超越 IE 认为的内联样式?

【问题讨论】:

    标签: css internet-explorer internet-explorer-9 background-image


    【解决方案1】:

    那是你的问题:

    CSS was ignored due to mime type mismatch 
    normalize.css
    

    如果您检查网络调用,则会收到 normalize.css 作为 text/plain 而不是 text/css。您应该在 IIS 中安装静态内容(在服务器角色下),因为某些奇怪的原因默认情况下没有安装它。我赌一美元你正在使用 IIS。

    您可以将 normalize.css 复制粘贴到服务器端 css 文件中,这样就不会远程访问它。

    我通过执行以下操作使其正常工作:

    • 从 styles-ie.css 中删除 #framePos img{ display: none; }
    • 删除 unitpngfix.js - png 过滤器修复适用于 ie6,在 ie9 上不起作用(这实际上是框架不显示的原因之一)

    注意:frame.png 图片作为背景放置在很多地方,因此您应该考虑对 css 文件进行一些清理

    另一个注意事项:unitpngfix.js 将 frame.png 替换为 clear.gif 并在每个 png 元素上放置透明度过滤器。所以在你删除 js 之前,对 css 的修补不会做任何事情。

    【讨论】:

    • 服务器正在运行Apachenormalize.css来自github。最好的办法是下载并上传到他们的服务器。
    • 我的钱到手了。虽然我很难相信 apache 会为静态内容发送错误的 mime 类型。 IIS 在没有静态内容服务器角色的情况下执行此操作。我会暂时坚持下去。
    • 感谢您的提示,这可能会帮助我深入了解这一点。我无法控制服务器,我正在为朋友做这件事。但我会看看摆脱 normalize 是否有帮助,或者我是否可以尝试以不同的方式传递它。
    • 我删除了 normalize.css 仍然遇到同样的问题。你现在怎么看?
    • 感谢您的帮助。我已经解决了所有问题,结果证明我能够删除我的条件样式表。很好的帮助!
    猜你喜欢
    • 2021-10-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-10-21
    • 1970-01-01
    • 2016-10-20
    • 1970-01-01
    • 2011-05-26
    相关资源
    最近更新 更多