如何找到 #home-banner
Div的剩余高度并为其应用背景颜色?
说明
我想找到 #home-banner
的高度,并为其应用红色背景颜色。
我在以下代码中观察到的一些要点......
为什么我得到滚动条虽然我使用100%高度的body和html? jQuery无法计算BOX模型或其他任何方式吗?
.navbar
- Actaul Heihgt是:85px,但它只显示84px
(忽略border-bottom 1px?).home-logo
- Actaul Heihgt是:
190px,但它只显示90px(忽略前50px和
底部50px?)#login-form
- Actaul Heihgt是:240px,但它只显示200px(忽略填充顶部20px和底部20px?).s-info
- Actaul
Heihgt是:65px,但它只显示200px(忽略填充顶部
10px和底部10px?)#footer
- Actaul Heihgt是:51px,它是显示正确高度的唯一元素:
PS:我已删除,填充内容和内部元素HTML:
<div class="navbar">Navbar</div>
<div id="home-content">
<div class="container">
<div class="home-logo">Logo Placeholder</div>
<div id="login-form">
<p>Login Form</p>
<p>lorem</p>
<p>ipsum</p>
<p>dolar</p>
<p>sit</p>
<p>amet</p>
</div>
<div id="home-banner">
Banner Height (Excluding .navbar, .home-logo, #login-form, #footer, .s-info)
</div>
</div>
<div class="s-info"><p>Some Information</p></div>
<div id="footer">
<h1>Footer</h1>
<p>Dummy Content</p>
</div>
</div>
jQuery的:
$(document).ready(sizeContent);
$(window).resize(sizeContent);
function sizeContent() {
var newHeight = $("html").height() - $(".navbar").height() - $(".home-logo").height() - $("#login-form").height() - $(".s-info").height() - $("#footer").height() + "px";
$("#home-banner").css("height", newHeight );
alert('Navbar Height: ' + $(".navbar").height()); // 84
alert('Home Logo Height: ' + $(".home-logo").height()); // 93
alert('Login Form Height: ' + $("#login-form").height()); // 200
alert('Banner Height: ' + $("#home-banner").height()); // 442
alert('S Info Height: ' + $(".s-info").height()); // 45
alert('Footer Height: ' + $("#footer").height()); // 51
alert('HTML Height: ' + $("html").height());
}
CSS:
html, body {
height: 100%;
padding: 0;
margin: 0;
font-family: Verdana;
font-size: 14px;
}
.navbar {
height: 84px;
background: yellow;
border: 0;
border-bottom: 1px solid #000;
}
.home-logo {
background: #999;
margin: 50px 0;
height: 90px;
}
#login-form {
padding: 20px 0;
background: #ccc;
}
.s-info {
padding: 10px 0;
background: #666;
}
#footer {
padding: 0;
background: #eee;
}
#footer p {
margin: 0;
padding: 0;
}
#footer h1 {
padding: 0;
margin: 0;
}
#home-banner {
background: red;
text-align: center;
color: #fff;
font-weight: bold;
}
答案 0 :(得分:-1)
感谢jQuery API ......
这是工作代码:
$(document).ready(sizeContent);
$(window).resize(sizeContent);
function sizeContent() {
var newHeight = $("html").outerHeight(true) - $(".navbar").outerHeight(true) - $(".home-logo").outerHeight(true) - $("#login-form").outerHeight(true) - $(".s-info").outerHeight(true) - $("#footer").outerHeight(true) + "px";
$("#home-banner").css("height", newHeight );
alert('Navbar Height: ' + $(".navbar").outerHeight(true)); // 84
alert('Home Logo Height: ' + $(".home-logo").outerHeight(true)); // 93
alert('Login Form Height: ' + $("#login-form").outerHeight(true)); // 200
alert('Banner Height: ' + $("#home-banner").outerHeight(true)); // 442
alert('S Info Height: ' + $(".s-info").outerHeight(true)); // 45
alert('Footer Height: ' + $("#footer").outerHeight(true)); // 51
alert('HTML Height: ' + $("html").outerHeight(true));
}
答案 1 :(得分:-2)
alert("Home Banner Height : "+$("#home-banner").height());
$("#home-banner").css({'background-color','#cc9900'});