使用#IEroot进行ie-targeted造型?

时间:2008-12-31 05:01:54

标签: css internet-explorer

有没有人能够成功使用IE CSS hack #IEroot?我从this article偶然发现了它,但它似乎对我不起作用。

我正在尝试修复/破解内联样式错误以生成li内联块

#featured li {
    margin:0px;
    padding:0px;
    width:317px;
    height:310px;
    display:inline-block;
    border-left:1px #bdbdbd solid;
}
#IEroot #featured li {
    display:inline;
}

任何帮助都会得到很大的帮助,谢谢。

2 个答案:

答案 0 :(得分:3)

IT DOES WORK ,正如所描述的那样,甚至在IE8中,并且实际上是一个非常聪明的CSS黑客来解决IE特定的错误。

必须首先换掉REAL DOCTYPE的DOCTYPE线。

以下是链接中的代码,调整为工作样本。

<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<style>
/* all browsers make border red */
#IE { border : 2px solid red; }
/* all browsers see this, but only IE thinks #IEroot exists as an element and makes border blue */
#IEroot #IE { border-color : blue; }
</style>
</head>
<body>
<!--[if IE]>
<div id="IEroot">
<![endif]-->
<p id="IE">This browser is IE. (red in all, blue in IE)</p>
<p id="notIE">This browser is not IE.</p>
<!--[if IE]>
</div>
<![endif]-->
</body>
</html>

答案 1 :(得分:-1)

我正在使用IE8的测试版,您所指的页面上的示例不起作用。现场演示似乎也没有计入IE8。

这些黑客很聪明,但我建议你远离它。

每当您遇到浏览器之间的差异时,总会有其他方法以适用于所有浏览器的方式执行相同的操作。

我制作的CSS网站数量超出了我的数量,我从来没有采用特定于浏览器的代码,特别是在特定版本的浏览器中利用漏洞的代码。他们今天解决了一个小问题,但明天给你带来两次头痛,并且是一个难以维持的蠢事。

如果你坚持使用这样的黑客,请务必添加如下评论:

/* >>>>>>> BUTT-UGLY BROWSER HACK! FIX ME!!!!! <<<<<<<< */
#IEroot #featured li {
    display:inline;
}

: - )