Html 我不希望背景图片显示在IE中。我该怎么做?
这是CSS,我不希望背景图片显示在IE中。相反,我只想显示背景色。我该怎么做Html 我不希望背景图片显示在IE中。我该怎么做?,html,css,internet-explorer,background,Html,Css,Internet Explorer,Background,这是CSS,我不希望背景图片显示在IE中。相反,我只想显示背景色。我该怎么做 html, body { margin:0; padding: 0; background: #a9ac41; background-image: url("background.png"); background-repeat: no-repeat; background-size: cover; margin:0; padding: 0; }
html, body {
margin:0;
padding: 0;
background: #a9ac41;
background-image: url("background.png");
background-repeat: no-repeat;
background-size: cover;
margin:0;
padding: 0;
}
使用
条件语句
<!--[if IE]>
Place IE specific content.
<![endif]-->
如果是特定于版本的,您可以这样混合代码-
<!--[if lt IE 8]>
Place content for IE lower than 8
<![endif]-->
创建了一个经过粗略测试的代码,并签入IE 9-
<!--[if gte IE 8]>
<style>
html, body {
background: #a9ac41;
background-image: url("http://dummyimage.com/600x400/000/fff.png");
background-repeat: no-repeat;
background-size: cover;
margin:0;
padding: 0;
}
</style>
<![endif]-->
<html>
<body>
<body>
</body>
</html>
编辑
条件语句不适用于IE10,因此您可以通过媒体查询来管理它
示例线程-条件样式表是您所需要的。
通过使用下面的代码,您可以设置仅在IE中使用的样式表,在该样式表中,您可以为主体设置替代样式
<!--[if IE]>
<link rel="stylesheet" type="text/css" href="all-ie-only.css" />
<![endif]-->
根据您要针对的IE版本,您可以使用条件注释(和/或仅适用于IE的样式表):
请注意,这在IE10中不起作用。有很多不同的方法可以做到这一点,这实际上取决于您对页面的其他操作。一种简单的方法是在
标记中使用以下HTML
为此替换html的标记html
:
<!-- paulirish.com/2008/conditional-stylesheets-vs-css-hacks-answer-neither/ -->
<!--[if lt IE 7]> <html class="no-js lt-ie9 lt-ie8 lt-ie7" lang="en"> <![endif]-->
<!--[if IE 7]> <html class="no-js lt-ie9 lt-ie8" lang="en"> <![endif]-->
<!--[if IE 8]> <html class="no-js lt-ie9" lang="en"> <![endif]-->
<!--[if gt IE 8]><!--> <html class="no-js" lang="en"> <!--<![endif]-->
注意:IE10不支持条件注释,因为此方法在将此代码复制并粘贴到html中
<!--[if IE]>
<stye>
html, body {
background-image: none;
}
</style>
<![endif]-->
我猜这里的问题是背景大小。IE8和更早版本不支持它,所以你在IE8中看到你的图像被弄乱了,你想通过恢复到普通背景来解决它
首先,我应该告诉您,IE9和更高版本支持背景大小,因此您不需要对所有IE版本进行全面更改。您只需要解决IE8和更早版本中缺乏支持的问题
以下是您的一些选择:
- 纯CSS解决方案:
您可以利用CSS处理未知属性的方式,为不支持背景大小的浏览器提供纯CSS回退,方法是以速记背景
样式将大小指定为参数:
background: #a9ac41;
background: url("bgimage.png") cover;
IE8将完全忽略第二个背景
,因为它不理解封面
。其他浏览器会忽略第一个,因为第二个浏览器会覆盖它。问题解决:所有浏览器都有一个工作背景
- 功能检测解决方案:
您可以使用一个工具来测试背景大小的浏览器支持,然后使用Javascript相应地更改页面(例如,如果不支持,则加载不同的样式表)
过滤器
解决方案:
尽管IE8不支持背景大小
,但可以使用-ms filter
属性来模拟它,并取得一定程度的成功。您将使用如下代码:
-ms-filter: "progid:DXImageTransform.Microsoft.AlphaImageLoader(src='path_relative_to_the_HTML_file', sizingMethod='scale')";
范例
- Polyfill溶液:
有一些“polyfill”脚本可用于在旧IE版本中实现一些缺少的CSS功能,包括背景大小
。在这种情况下,我推荐的是。按照css3pie网站上的说明操作,即使在非常旧的IE版本中,您也可以使用标准的背景大小
希望能有所帮助。回答这个问题显然有多种方法,一些好方法已经提到了。下面是我最常用的另一种方法,它需要更少的字节:
要仅针对Internet Explorer,请在要针对的代码前面加一个“*”,即使用上面的示例,使背景不显示在中,即使用*类似于:
html, body {
margin:0;
padding: 0;
background: #a9ac41;
*background-image: none;
background-image: url("background.png");
background-repeat: no-repeat;
background-size: cover;
margin:0;
如果它不起作用,很可能是你的规则相互冲突。在这种情况下,请使用“!important”,例如:
*background-image: none !important;
您已经指定了两次margin
和padding
。(这不会引起问题,但也不会有任何帮助)问题是“你想影响哪个IE版本,为什么?”如果你想对所有IE版本都这样做,那么我会反对。如果您试图处理IE8不支持背景大小的问题,那么可能有办法解决。但无论哪种方式,答案都会根据您想要的IE版本而有所不同,因此请具体说明。注意,如果他希望所有IE版本都受到影响,那么这将在IE10中失败,因为它不支持条件注释。注意,如果他希望所有IE版本都受到影响,那么这将在IE10中失败,因为它不支持有条件的评论。我不知道,谢谢!有没有一种替代方案在IE10中起作用?不是直接的等效方案——微软正在共同努力使IE符合标准,所以他们正在删除像这样的非标准内容。但另一方面,这也意味着IE10通常非常擅长与代码兼容,因此很少需要这样的技巧。如果有必要,您应该使用功能检测(例如使用Modernizer库),而不是浏览器检测。请注意,如果他希望所有IE版本都受到影响,那么在IE10中这将失败,因为它不支持条件注释。请注意,条件注释功能在IE10中不可用,因此,这个技巧在IE10(或未来的IE版本)中不起作用。@Spudley对于IE10的特定情况,您可以运行媒体查询。是的,也有检测IE10的方法。不过,老实说,最好是进行特征检测,因为IE10(甚至IE9)对OP的背景图像没有任何问题。这里所有提供有条件评论以检测IE的答案都是错误的。我猜OP并没有真正提出正确的问题,但在这种情况下,阅读字里行间的内容,找出实际问题是什么,而不是给出正确的答案,会有所帮助
*background-image: none !important;