IE8与IE7 html格式
我一直在努力使一个div容器元素与其子内容一起居中,现在开始变得令人沮丧。我对div的内联样式如下所示:IE8与IE7 html格式,html,css,internet-explorer,firefox,internet-explorer-7,Html,Css,Internet Explorer,Firefox,Internet Explorer 7,我一直在努力使一个div容器元素与其子内容一起居中,现在开始变得令人沮丧。我对div的内联样式如下所示: <body id="body1" style="vertical-align: middle; text-align: center"> <div id="container" style="position: relative; width: 910px; margin: 0px auto;"> <!---Ch
<body id="body1" style="vertical-align: middle; text-align: center">
<div id="container" style="position: relative; width: 910px; margin: 0px auto;">
<!---Child Content--->
.
.
.
</div>
</body>
.
.
.
当在IE7中查看这些设置时,div容器被向右偏移,如下图所示:
为了使其居中,我必须在其位置样式中添加定义正确的属性,以便将其推向中心:
<body id="body1" style="vertical-align: middle; text-align: center">
<div id="container" style="position: relative; right: 425px; width: 910px; margin: 0px auto;">
<!---Child Content--->
.
.
.
</div>
</body>
.
.
.
这解决了IE7的问题:
但是,可以预见,IE8、Firefox、Chrome等中的格式设置已关闭。当应用上述第二种样式设置格式时:
Firefox(在Chrome和IE8中的行为相同)
希望这是一个简单的解决办法,我不明白为什么IE7对待样式不同。感谢您的帮助
更新:
@Dan Hardy,漂泊-如果我能接受你们的两个答案,我会的,谢谢你们,它奏效了。这是一个非常奇怪的行为,我想现在我不必满足特定的浏览器。这为修复铺平了道路,但严格来说,这不是一个修复: 您可以将特定于浏览器的条件语句添加到HTML代码中: 基本上,您可以将下面的评论添加到您的页面:
<!--[if IE 7]>
<link rel="stylesheet" type="text/css" href="conditional_ie_7_stylesheet.css" />
<![endif]-->
在这些标记之间,您可以添加必要的样式,以抵消特定浏览器上的问题
正如我所说,这并不能解决您的CSS问题,但它提供了一个替代方案。如果您将
!ie7
在width属性之后,IE 7以外的浏览器将忽略它:
右:425px!ie7代码>
要更好地解释这一点,请参见此SO问题和公认的答案:
我让你来决定这是否太“黑”了,但是它被用于堆栈溢出css。当您从div中删除位置:relative
时,可以使原始问题中的html在IE7中正常工作。在内容html/css中也有可能存在交互,导致潜在问题,因此如果这不能解决问题,您可以发布在屏幕截图中演示问题的html/css内容将很有帮助。感谢您的帮助和资源Daniel,我会将此方法和链接放在手边。在阅读了提供的链接漂流中的更多内容后,我发现该特定方法虽然解决了问题,但被认为是一种非标准的黑客行为。我想尝试坚持标准,只是个人风格,所以我可能会更改为您提供的格式。我想我的解决方案和公认的解决方案之间的区别是-如果您有大量需要更改的样式,您可以将它们全部收集在一个特定的样式表中,如上所述。如果你只是在改变一两件小事,那么接受的解决方案也同样有效!感谢Aliester,代码实际上是一个模板,将应用于多个页面,其中一个要求是容器div相对定位。我非常喜欢速记符号,并在可能的时候尝试使用它。