0

我遇到了一个问题,即只有某些部门在垂直方向上相互重叠。我的第二个灰色“pageBreak”安装在我的“subHeader”之上,而不管填充修复并试图保持在清除浮动的顶部。

我已经尝试过溢出、clearfix、老式的“clear: both;”,但我仍然遇到同样的问题。(我认为这是一个与浮点相关的问题。)我什至尝试(如您在代码中看到的)使用相对和绝对定位来让我的第二个“pageBreak”低于我的“subHeader”,因为它应该是,但没有定位值甚至移动第二个“pageBreak”。在这些引用的下方,我还有其他 div 潜入我的“subHeader”顶部。我宁愿不使用这些修复,因为出于显而易见的原因,我希望 CSS 尽可能动态。

我觉得代码很简洁,但我显然遗漏了一些相当明显的东西。任何帮助将不胜感激!

我已包含页面的 HTML 和 CSS 供您查看。

HTML:

<div class="container">
<div class="header">
    <div style="float:left">
        <img src="images/Logo.gif" alt="Company Logo" width="345px" height="117px">
    </div>
    <div style="float: right;">
        <h2>Company slogan.&#0153;</h2>
    </div>
    <div style="clear: both;"></div>
</div>

<div class="pageBreak">
</div>

<div class="subHeader">
    <div style="float: left; width: 400px; text-align: left;">
    </div>
    <div class="form" style="float: right; width: 300px;">
        <form id='login' action='login.php' method='post' accept-charset='UTF-8'>
            <input type='hidden' name='submitted' id='submitted' value='1'/>
            <div>
                <label style="float: left;" for='username' >School Email</label>
                <input style="float: right;" type='text' name='username' id='username'  maxlength="50" /></br></br>
            </div>
                <div style="clear: both;">
            <div>
                <label style="float: left;" for='password' >Password</label>
                <input style="float: right;" type='password' name='password' id='password' maxlength="50" />
            </div>
                <div style="clear: both;"></div>
                    <p style="font-size: 70%; text-align: right; line-height: 8px;"><a href="app-test/forgot-password.php">Forgot your password?</a></p>
                    <p style="font-size: 70%; text-align: right; line-height: 8px;"><a href="register.php">Want to register?</a></p>
            <div>
                <input type='submit' name='Submit' value='Log In' style="float: right;"/>
            </div>
        </form>
    </div>
    <div style="clear: both;"></div>
</div>

<div class="pageBreak" style="top: 400px;">
</div>

CSS:

.container {
width: 1000px;
margin-left: auto;
margin-right: auto;
border-radius: 15px;
background-color: white;
box-shadow: 10px 10px 40px #888;
}

.pageBreak {
margin-left: auto;
margin-right: auto;
width: 900px;
border-top: rgb(238,238,238) 3px solid; 
}

.header {
padding-top: 30px;
padding-bottom: 30px;
padding-left: 50px;
padding-right: 50px;
}

.subHeader {
padding-top: 30px;
padding-bottom: 30px;
padding-left: 50px;
padding-right: 50px;
}
4

3 回答 3

0

不知道这是否能解决问题,但它太大而无法发表评论......

您的 HTML 格式不正确,您缺少一些结束标签。这可能是最后一个标签的复制错误,但第一个标签看起来是真的。

请参阅下面的代码(我已经评论了需要更正的地方):

<div class="container">
    <div class="header">
        <div style="float:left">
            <img src="images/Logo.gif" alt="Company Logo" width="345px" height="117px">
        </div>
        <div style="float: right;">
            <h2>Company slogan.&#0153;</h2>
        </div>
        <div style="clear: both;">
        </div>
    </div>
    <div class="pageBreak">
    </div>
    <div class="subHeader">
        <div style="float: left; width: 400px; text-align: left;">
        </div>
        <div class="form" style="float: right; width: 300px;">
            <form id='login' action='login.php' method='post' accept-charset='UTF-8'>
                <input type='hidden' name='submitted' id='submitted' value='1'/>
                <div>
                    <label style="float: left;" for='username'>School Email</label>
                    <input style="float: right;" type='text' name='username' id='username' maxlength="50"/></br></br>
                </div>
                <div style="clear: both;">
                    <div>
                        <label style="float: left;" for='password'>Password</label>
                        <input style="float: right;" type='password' name='password' id='password' maxlength="50"/>
                    </div>
                    <div style="clear: both;">
                    </div>
                    <p style="font-size: 70%; text-align: right; line-height: 8px;">
                        <a href="app-test/forgot-password.php">Forgot your password?</a>
                    </p>
                    <p style="font-size: 70%; text-align: right; line-height: 8px;">
                        <a href="register.php">Want to register?</a>
                    </p>
                    <div>
                        <input type='submit' name='Submit' value='Log In' style="float: right;"/>
                    </div>
                </div> <!-- HERE -->
            </form>
        </div>
        <div style="clear: both;">
        </div>
    </div>
    <div class="pageBreak" style="top: 400px;">
    </div>
</div> <!-- HERE -->
于 2012-08-26T04:21:16.590 回答
0

你有line-height: 8px你的代码。增加段落的行高并减少您的分区宽度并省略一些float属性。
jsfiddle

于 2012-08-26T04:02:49.607 回答
0

下面的标记将解决您布局中的问题。

<!-- CONTAINER -->
<div class="container">

<!-- HEADER -->    
<div class="header">
        <div style="float:left"><img src="images/Logo.gif" alt="Company Logo" width="345px" height="117px"></div>
        <div style="float: right;"><h2>Company slogan.&#0153;</h2></div>
        <div style="clear: both;">&nbsp;</div>
</div>
<!-- / HEADER -->

<!-- 1ST PAGE BREAK -->
<div class="pageBreak">&nbsp;</div>
<!-- / 1ST PAGE BREAK -->

<!-- SUBHEADER -->
<div class="subHeader">

            <div class="form" style="float: right; width: 300px;">

                <!-- FORM -->
                <form id='login' action='login.php' method='post' accept-charset='UTF-8'>

                    <input type='hidden' name='submitted' id='submitted' value='1'/>

                    <div>
                        <label style="float: left;" for='username' >School Email</label>
                        <input style="float: right;" type='text' name='username' id='username'  maxlength="50" /></br></br>
                    </div>

                    <div style="clear: both;">&nbsp;</div>

                    <div>
                        <label style="float: left;" for='password' >Password</label>
                        <input style="float: right;" type='password' name='password' id='password' maxlength="50" />
                    </div>

                    <div style="clear: both;">&nbsp;</div>

                    <p style="font-size: 70%; text-align: right; line-height: 8px;"><a href="app-test/forgot-password.php">Forgot your password?</a></p>

                    <p style="font-size: 70%; text-align: right; line-height: 8px;"><a href="register.php">Want to register?</a></p>

                    <div><input type='submit' name='Submit' value='Log In' style="float: right;"/></div>

                </form>
                <!-- /FORM -->

            </div>

            <div style="clear: both;">&nbsp;</div>
</div>
<!-- / SUBHEADER -->

<!-- 2ND PAGE BREAK -->
<div class="pageBreak">&nbsp;</div>
<!-- / 2ND PAGE BREAK -->

</div>
<!-- / CONTAINER -->
于 2012-08-29T12:29:21.660 回答