假设以下代码:
<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之外的任何内容 - 并且无法访问标题。
答案 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]-->
IE 10定位需要一点JS:
<![if !IE]><!--<script>
if (/*@cc_on!@*/false) {
document.documentElement.className+=' ie10';
}
</script><!--<![endif]-->
这会在html元素中附加一个“ie10”类,但你可以在文档中写下你想要的任何内容
答案 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");
}