0

我正在尝试将我的登录页面与 css 对齐。但是,我在两个属性 margin-top 和 top 之间存在问题。Margin-top倾向于根据第一个元素推送登录页面,而top只是登录页面的位置。因此,我不能在我的媒体查询代码中使用 margin-top。不幸的是,顶部效果不佳

这就是我在 CSS 中添加 top 属性的方式

#loginpage {
position:absolute;
width:100%;
top:-42%;
}

这是行不通的。

只有这个有效

margin-top:-20%;

在我的登录页面上方,有一个幻灯片标题和一个 twitterbootstrap 导航栏

#twitterbootstrap {
    position: relative;
}

#SlideshowHome {
    position: absolute;
    left: 0%;
    width: 100%;
    top: 6%;
    height: 20%;
}

这是我的登录页面

 <div id="loginpage">
    <table id="loginpage1" width="100%">
    <tr>
        <td>
            <h2>Login</h2>
            <br />
        </td>
    </tr>

    <tr>

       <td>
          <b>  Username : </b> <asp:TextBox ID="txtUsername" runat="server"></asp:TextBox>
            <br />
            <br />
        </td>
    </tr>

    <tr>

        <td>
           <b> Password : </b> <asp:TextBox ID="txtPassword" runat="server" TextMode="Password" ></asp:TextBox>
            <br />
            <br />
        </td>
    </tr>

</table>
</div>

这也是我的 twitterbootstrap 和幻灯片标题

 <div id="SlideshowHome">
 <img src="image/s1.jpg" name="slide" style="width:100%; height:150%">
</div>
<div id="twitterbootstrap">
<div class="navbar navbar-inverse navbar-fixed-top">
<div class="navbar-inner">
    <div class="container">
        <a class="btn btn-navbar" data-toggle="collapse" data-target=".nav-collapse">
            <span class="icon-bar"></span>
            <span class="icon-bar"></span>
        </a>
        <a class="brand" href="#">iPolice's Menu</a>
        <div class="nav-collapse">
            <ul class="nav">
                <li class="divider-vertical"></li>
                <li><a href="Login.aspx">Login</a></li>
                <li class="divider-vertical"></li>
                <li><a href="RecoverPassword.aspx">Recover Password</a></li>
                <li><a href="https://www.facebook.com/singaporepoliceforce?ref=ts&fref=ts"><img src="image/facebook.jpg" style="width:100px; height:30px"></a></li>
                <li><a href="https://twitter.com/SingaporePolice"><img src="image/twitter.jpg" style="width:100px; height:30px"></a></li>
            </ul>
        </div>
    </div>
</div>
</div>
</div>

因此,请问为什么只有margin-top会改变位置而不是top?

4

1 回答 1

1

百分比值top基于包含块的高度 - 请参阅http://www.w3.org/TR/CSS21/visuren.html#position-props - 而margin-top百分比值基于包含块的宽度- 请参阅http://www.w3.org/TR/CSS21/box.html#margin-properties - 导致大小不同。

因此,如果我的猜测是正确的,并且您的登录页面仅包含绝对定位的 div,那么包含块(正文)在功能上是空的并且没有任何高度。
它的标准宽度是 100% 的窗口,所以这就是为什么top-margin有效但不是top.

解决方案:明确地给容器一个高度。

于 2013-09-04T06:58:32.747 回答