如何在IE8中自动将div居中显示在怪异模式下?

6

我正在使用IE8的怪异模式...

我有从Firefox样式表中层叠而来的样式,其中包括:

#container {position:relative; width:1007px; margin-right:auto; margin-left:auto;}       

#textbin {width:720px; position:relative; margin-right:auto; margin-left:auto;}

显然,我做错了些什么,或者自动边距在IE8中不起作用。 这是真的吗?如果是这样,如何避免这个限制?我尝试了不使用定位、绝对定位,甚至在我的IE8样式表中添加相对位置。此外,当我手动居中div时,IE8会在页面底部添加边距。

顺便说一下,我在这里是新手,如果需要更多信息,请告诉我!


1
你必须在怪异模式下工作吗?有没有理由不能设置文档类型,使其不处于怪异模式? - Patrick Evans
是的,由于我的position:fixed头部,我必须在quirksmode下工作。我不得不使用几个hack来使头部滚动,而这些hack如果没有quirksmode就无法工作。 - SamStar
1
我不是很确定你的意思,需要更多细节,但是 position:fixed 可以在 IE 8 标准和 IE 7 标准下使用。请参见这里:http://jsfiddle.net/rNdhV/ - JakeParis
div#top {position:absolute; left: expression(document.body.scrollLeft); top: expression( ( ignoreMe = document.body.scrollTop ) + 'px' );}body > div#top {position:fixed; left: 0px; top: 0px;} body {background-image: url("images/trans.gif"); background-repeat: no-repeat; background-attachment: fixed;} - SamStar
很抱歉我无法更好地格式化它... - SamStar
显示剩余2条评论
2个回答

7

以前的做法是在要居中的div的父元素上添加text-align:center。当然,如果您不想让子元素居中对齐,那么您需要特别声明子元素的text-align属性,因为text-align会被子元素继承。


0

适用于IE5 quirks及更高版本的浏览器。

相关css代码:

body, html {
width:100%;
}

#yourdivname {
margin:0px 50% 0px 50%;
//this can be removed, but is just for test sake.
background-color:#bbb;
width:100px;
height:100px;
}

希望这能有所帮助,敬礼 Bert Jan。


这不是问题的答案 - MikroDel
这个问题是关于IE8而不是IE5的。 - MikroDel
1
@MikroDel - 这个问题是关于 Quirks Mode 的,它是 IE5 兼容模式。因此,这是一个完全正确的答案。 (问题本身很糟糕;现在没有人应该使用 quirks mode,但对于这个问题来说,答案是可以接受的) - Spudley

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接