有没有人能够成功使用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;
}
任何帮助都会得到很大的帮助,谢谢。
答案 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;
}
: - )