IE条件语句不起作用(语法错误?)

时间:2012-12-03 17:15:31

标签: html internet-explorer

假设以下代码:

<div class="content">
<div style="background:url(swoosh.jpg) no-repeat; background-size:100% 100%;" class="top">
<div style="height:42px; align:center;" id="logo">

我的目标是让背景为swoosh.jpg的div成为一个简单的div,其中class = top

我已尝试让条件自己工作,但由于某种原因(语法?)它无法正常工作。

以下是我尝试的内容

<div class="content">
<!--[if !IE]>
<div class="top">
<![endif]-->
<!--[if IE]>
<div style="background:url(swoosh.jpg) no-repeat; background-size:100% 100%;" class="top">
<![endif]-->

我应该提一下,我不能为此应用程序使用除内联CSS之外的任何内容 - 并且无法访问标题。

4 个答案:

答案 0 :(得分:1)

尝试添加

<!--[if lt IE 7]><html class="ie6"><![endif]-->
<!--[if IE 7]><html class="ie7"><![endif]-->
<!--[if IE 8]><html class="ie8"><![endif]-->
<!--[if gt IE 8]><!--><html><!--<![endif]-->

到HTML文档的顶部。然后像这样使用CSS

.content {
      color:red;
    }
.ie6 .content {
      color:blue;
    }
.ie7 .content {
      color:green;
    }

通过这种方式,您可以将所有CSS保存在一个文件中,将IE类保存在非IE类旁边。

查看Paul Irish的doc

答案 1 :(得分:1)

我认为这是如何做你想要的,但如前所述,如果你有其他选择(在IE9中测试 - IE10不适用于条件语句),它不是最好的做事方式:

<![if !IE]>
<div class="top">
<![endif]>
<!--[if IE]>
<div style="background:url(swoosh.jpg) no-repeat; background-size:100% 100%;" class="top">
<![endif]-->

http://jsfiddle.net/APFZh/2/

IE 10定位需要一点JS:

<![if !IE]><!--<script>  
if (/*@cc_on!@*/false) {  
    document.documentElement.className+=' ie10';  
}  
</script><!--<![endif]-->  

这会在html元素中附加一个“ie10”类,但你可以在文档中写下你想要的任何内容

http://www.impressivewebs.com/ie10-css-hacks/

答案 2 :(得分:0)

最好只使用class =“top”的div,但在单独的IE样式表中为它设置不同的样式,因为不建议使用内联CSS。

将它放在页面的HEAD中:

<!--[if IE]>
<link rel="stylesheet" type="text/css" href="ie.css">
<![endif]-->

至于它不起作用我建议确保你的页面顶部有一个有效的DOCTYPE,因为IE非常挑剔。

答案 3 :(得分:0)

如果某人仍然访问此页面,则会更新,想知道为什么ie目标在最近的IE浏览器中不起作用。 IE 10及以后版本不再支持条件评论。来自MS官方网站:

  

Internet Explorer中已删除对条件注释的支持   提高互操作性的10种标准和怪癖模式   符合HTML5。

请点击此处了解详情:http://msdn.microsoft.com/en-us/library/ie/hh801214(v=vs.85).aspx

如果您迫切需要定位ie,您可以使用此jquery代码添加ie类,然后在您的css中使用.ie类来定位即浏览器。

if ($.browser.msie) {
 $("html").addClass("ie");
}