我在哪里将IF语句放在我的HTML页面上?

时间:2011-12-14 07:11:05

标签: html css internet-explorer-7 internet-explorer-6

我试图让我的网站在ie6和ie7上正确显示,他们说你必须使用这个声明:

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

现在我在哪里将此语句放在我的HTML页面中?


编辑:

所以我刚刚在doctype之后添加了这个:

  <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org
  /TR/xhtml1/DTD/xhtml1-transitional.dtd">
  <html xmlns="http://www.w3.org/1999/xhtml">
  <!--[if lt IE 7]><html class="ie6" lang="en"><![endif]-->
  <!--[if IE 7]><html class="ie7" lang="en"><![endif]-->
  <!--[if IE 8]><html class="ie8" lang="en"><![endif]-->
  <!--[if gt IE 8]><!--><html lang="en"><!--<![endif]-->
  <head>

在我的样式表ie6.css中我得到了这个:

.ie6 #magazine_style_left {
position:relative;
float:left;
width:150px;
font-family:Georgia, "Times New Roman", Times, serif;
font-size:14px;
color:#999999;
font-style:italic;
line-height:18px;

}

.ie6 #magazine_style_right {
position:relative;
float:right;
width:519px;
border-left: 1px solid #F2F2F2;
}

我在同一页面上添加了css,但仍然无效。它就像没有拿起/使用ie6 css

4 个答案:

答案 0 :(得分:5)

头标记内的

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

答案 1 :(得分:3)

进入其他CSS旁边的<head>包括。这当然意味着您有一个ie6.css文件来修复IE6特定的问题。

答案 2 :(得分:3)

这可能有助于澄清要提及的事情:

IE conditional comments,例如<!--[if IE 6]><![endif]-->可以在文档中的任何位置*。在<head><body><li>元素或<form>等中,内容中的内容(可以是任何内容*)将会呈现(或不)根据使用的规则。

*可能有例外情况,但我不知道具体的情况。

知道了这个问题,这个问题实际上归结为“我在哪里放<link>标签”,当然在其他答案中提到的<head>

还有另一种定位IE的方法,如下所述:

http://paulirish.com/2008/conditional-stylesheets-vs-css-hacks-answer-neither/

  

现在有一段时间,标准界已经团结起来   条件样式表作为验证问题的解决方案。

     

但它有一些问题:

     
      
  • 条件样式表意味着要下载1或2个额外的HTTP请求
  •   
  • 当它们在中时,页面的呈现会等待它们完全加载。
  •   
  • 此外 - 雅虎内部编码最佳做法不建议使用条件样式表
  •   
  • 它可以将单个CSS规则分成多个文件。我花了很多时间想知道“这个规则来自何处!?”   当它被隐藏在条件样式表中时。
  •   
     

这是我提出的解决方案:

<!--[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:

div.foo { color: inherit;}
.ie6 div.foo { color: #ff8000; }
     

另外,它完全验证并适用于所有浏览器。

我强烈建议使用这种攻击IE的技术,绝对值得一试。

答案 3 :(得分:0)

你应该把它放在head标签内,可能就在你的其他css包含之后,因为在定义发生冲突的情况下,head标签的下方会覆盖之前的定义。