【问题标题】:Only Margin-top is working but not top只有 Margin-top 有效,但不是 top
【发布时间】:2013-09-04 14:58:32
【问题描述】:

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

【问题讨论】:

  • 分享你的html源码
  • 你能发布相关的HTML,如果可能的话,一个小提琴/jsBin/...?
  • @Fags 我刚刚把它贴在上面了。
  • @dc5 我想我不认为我可以将 asp.net 的东西放入 jsfiddle 中?

标签: html css twitter-bootstrap


【解决方案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 无效。

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

【讨论】:

  • 然而,问题是,在我的桌面上它看起来很好,非常接近我的幻灯片标题http://sipolice.azurewebsites.net/,但是当我把它放在我的手机上时,它就变成了其他的。因此,我的容器实际上已经很适合幻灯片标题下方了。
  • 在大电脑上可以正常工作,但在手机上不行?你从来没有在你的问题中提到这一点。我认为最好添加它。还有,什么手机,什么浏览器?
猜你喜欢
  • 1970-01-01
  • 2011-09-19
  • 1970-01-01
  • 2017-02-13
  • 2010-09-22
  • 2020-05-11
  • 2013-09-22
  • 1970-01-01
相关资源
最近更新 更多