我试图让我的网站在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
答案 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
标签的下方会覆盖之前的定义。