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

时间:2011-08-19 20:45:52

标签: css jsf internet-explorer-6

不言而喻,我对现代浏览器没有任何问题。这是我的页面代码:

<!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>

这是嵌套div容器的css:

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错误导致这样的问题,因为div中有额外的空白区域,但额外的空间只发生在某些div标签之后,如两个subContainerSections和横幅之后其中不包含div。我已经尝试将所有边距设置为零,但这并没有解决问题。就好像边缘和违规元素的边界之间有一些东西......

你们有什么想法?

修改 把我的DOCTYPE扔到那里澄清

以下是我页面的极其简化版本:link。如果您使用IE6查看它,您将看到“过滤器”标题与正文分离。

1 个答案:

答案 0 :(得分:0)

如果你能在jsFiddle上举一个有用的例子,但我知道IE6有水平间距的问题,可以通过elemnts zoom的设置修复,

.myhorzel{
   zoom:1;
}