Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/css/33.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
IE8与IE7 html格式_Html_Css_Internet Explorer_Firefox_Internet Explorer 7 - Fatal编程技术网

IE8与IE7 html格式

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

我一直在努力使一个div容器元素与其子内容一起居中,现在开始变得令人沮丧。我对div的内联样式如下所示:

    <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相对定位。我非常喜欢速记符号,并在可能的时候尝试使用它。