有人可以告诉我为什么上课" Login2"离开父母"登录" 我正在使用
#login2 {
width:100%;
height:100%;
background-color:#e8eceb;
}
答案 0 :(得分:2)
有人可以告诉我为什么上课" Login2"离开父母"登录"
您的#login
和#login2
元素的计算高度均为300px。你在这里做的事情是忽略了包括"登录管理面板"与#login2
元素中的#login
元素一起存在的文本。
此文本本身的计算高度为23像素(在Chrome中)。这意味着已将#login2
元素按下23px。最重要的是,我们的#login2
元素也将margin-top
属性设置为5px,这意味着我们的#login2
元素总共被推下了28px。因此,从#login
顶部到#login2
底部的距离是328px - 而不是我们正在寻找的300px。
解决此问题的一种简单方法是简单地将您的"登录到管理面板"文本在其自己的元素中定义了自己的固定高度;然后在margin-top
元素的高度中考虑该元素的高度和 #login2
:
body{
background-color: #bdd7d1;
}
#container {
width: 320px;
height: 300px;
background-color: #d0e1dd;
border: 1px solid white;
padding:10px;
margin-left:auto;
margin-right:auto;
}
#login {
width: 100%;
height: 100%;
text-align: center;
font-variant: small-caps;
font-size: 20px;
background-color: #404040;
border: 1px solid #404040;
color: white;
}
#login2 {
margin-top:5px;
width:100%;
height:270px;
background-color:#e8eceb;
}
#login p {
height: 25px;
line-height: 25px;
margin: 0;
}

<div id="container">
<div id="login">
<p>Login to Admin Panel</p>
<div id="login2">
<div id="buttonPlace">
</div>
</div>
</div>
</div>
&#13;
我在此代码段中所做的是将您的&#34;登录到管理面板&#34; <p>
代码中的文字,并将其设置为将其height
和line-height
设置为25px,并删除浏览器可能添加的任何边距。然后,我做了一些数学计算,以确定#login2
元素需要的高度,以使其完美契合:
h = Height of #login element
m = Top margin of #login2 element
p = Height of newly-added p element
d = Required height
h - m - p = d
300px - 25px - 5px = 270px
答案 1 :(得分:0)
答案 2 :(得分:0)
由两件事引起:
margin-top
值,其次是文字的大小登录管理员面板 您可以做的是为标题指定包装并设置固定高度:
<div class="title">Login to Admin Panel</div>
#login .title {
height:20px;
line-height:20px;
}
然后使用calc
设置面板的正确height
:
#login2 {
width:100%;
height:calc(100% - 20px);
background-color:#e8eceb;
}
答案 3 :(得分:0)
尝试将overflow: hidden
放在父#login
上。这样的事可能是你想要的:
body {
background-color: #bdd7d1;
}
#container {
width: 320px;
height: 300px;
background-color: #d0e1dd;
border: 1px solid white;
padding: 10px;
margin-left: auto;
margin-right: auto;
}
#login {
width: 100%;
height: 100%;
text-align: center;
font-variant: small-caps;
font-size: 20px;
background-color: #404040;
border: 1px solid #404040;
color: white;
overflow: hidden;
}
#login2 {
margin-top: 5px;
width: 100%;
height: 100%;
background-color: #e8eceb;
}
<body>
<div id="container">
<div id="login">Login to Admin Panel
<div id="login2">
<div id="buttonPlace"></div>
</div>
</div>
</div>
</body>
答案 4 :(得分:0)
我建议您使用:before
和/或:after
css伪元素减少元素数量, 完全不需要#login2元素 强>
为了使形式美观,我删除了你的#login2并将其替换为伪元素:after。
body {
background-color: #bdd7d1;
}
#container {
width: 320px;
height: 300px;
background-color: #d0e1dd;
border: 1px solid white;
padding:10px;
margin-left:auto;
margin-right:auto;
}
#login {
width: 100%;
height: 100%;
position:relative;
text-align: center;
font-variant: small-caps;
font-size: 20px;
background-color: #404040;
border: 1px solid #404040;
color: white;
overflow:hidden;
}
#login:after {
content:"";
position:absolute;
margin-top:5px;
width:100%;
height: calc(100%);
background-color:#e8eceb;
left:0;
top:22px;
}
<div id="container">
<div id="login">Login to Admin Panel
<div id="buttonPlace"></div>
</div>
</div>
要“隐藏”溢出,您可以使用父类的overflow:hidden
属性。
这种影响背后的原因是:
您已将两个'登录'的大小设置为100%,如下所示:
+-------+ +-------+
| | | |
| | | |
| | | |
| | | |
+-------+ +-------+
因此它们的高度(最初)相同。
但是,当你将文字放在一个文件中时,你会得到这个:
+-------+
|TEXT |
| |
| |
| |
+-------+
+-------+ <-- inner container set as 100%; so in effect it has been 'pushed down'
所以为了做到这一点,你需要确保你的子元素实际上是你需要它的大小,减去文本的高度。
使用overflow:hidden的替代方法是使用高度计算,因此最终会得到这样的结果:
#login:after {
content:"";
position:absolute;
margin-top:5px;
width:100%;
height: calc(100% - 27px); /*computed height of 'white area' required*/
background-color:#e8eceb;
left:0;
top:22px; /*Height of text*/
}
答案 5 :(得分:0)
对于你的情况,我只会为标题本身着色并让#login2自动调整高度,因为它相对于父DIV #login:
<强> HTML 强>:
<div id="container">
<div id="login">
<span class="hl">Login to Admin Panel</span>
<div id="login2">
<div id="buttonPlace"></div>
</div>
</div>
</div>
<强> CSS:强>
#login {
width: 100%;
height: 100%;
text-align: center;
font-variant: small-caps;
font-size: 20px;
background-color: #e8eceb;
border: 1px solid #404040;
color: white;
}
#login2 {
margin-top:5px;
}
#container .hl {
display: block;
background: #404040;
}