IE6中页面元素之间的额外空间



不用说,我对现代浏览器没有任何问题。下面是我的页面代码:

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
        <body onload="initializeWidgets();">
        <!-- ### Banner ### -->
        <jsp:include page="part_banner.jsp"></jsp:include>
        <!--  Extra space occurs here...   -->
        <!-- ### Filters and Table ### -->
        <div class="G_overallContainer">
            <div class="G_subContainer">
                <div class="G_subContainerSection">
                    <h:outputText value="Filtering Options" styleClass="G_subContainerSectionHeader"/>
                    <!--   ...here...   -->
                    <!-- ### Filter bar ### -->
                    <jsp:include page="part_filters.jsp"></jsp:include></div>
                    <!--   ...here...   -->
                <div class="G_subContainerSection">
                    <h:form id="tableForm">
                        <div class="table">
                        <h:dataTable value="#{tableDataBean.data}" var="data"
                                headerClass="tableHeaders"
                                rowClasses="oddRow,evenRow">                                                    
                        </h:dataTable></div>
                        <!--    ...and somewhere after here   -->
                    </h:form></div></div>   
            <h:messages layout="table" style="color:red;" showSummary="true" showDetail="false"/></div>
    </body>
    </f:view>
    </html>

这是我的css嵌套div容器:

body {
        margin:0px;
        border:none;
        padding:0px;
        width: 100%;
}
.G_overallContainer {
        position: static;
        display:block;
        border:none;
        padding: .25em;
        border-width: 0;
        border-style: none;
        border-spacing: 0;
}
.G_subContainer {
        display: block;
        border: none;
        padding: .25em;
        margin:0;
        border-style: none;
        background-color: #0f2d65;
}
.G_subContainerSection {
        display: block;
        margin: .25em;
        border:none;
}
.G_subContainerSectionHeader {
        font-style: bold;
        font-family: Verdana, Arial, Helvetica, sans-serif;
        font-size: 11px;
        display: block;
        padding: .5em;
        background: url(../image/steel-blue.png) repeat-x;
        color: #000000
}

看起来在IE6中每个元素之间有大约10到15px的额外空间。我很想责怪div标签,因为我知道有一些IE6的bug会导致这样的问题,因为div内有额外的空白,但是额外的空间只发生在某些div标签之后,比如两个subContainerSections和不包含div的横幅之后。我试过将所有边距设置为零,但这并不能解决问题。就好像在违规元素的页边距和边框之间有什么东西…

你们觉得怎么样?

编辑:

把我的DOCTYPE放在那里进行澄清

这是我的页面的一个非常精简的版本:链接。如果你用IE6查看它,你会看到"过滤器"标题从正文中分离出来。

如果你能在jsFiddle上抛出一个例子,那会有很大帮助,但我知道IE6有水平间距的问题,可以通过设置元素缩放来修复,

.myhorzel{
   zoom:1;
}

最新更新