我收到了这段代码:
DEMO:http://jsfiddle.net/z21nz89d/2/
HTML:
<nav class="navbar navbar-default" role="navigation">
<div class="container-fluid">
<!-- Brand and toggle get grouped for better mobile display -->
<div class="navbar-header">
<button type="button" class="navbar-toggle collapsed" data-toggle="collapse" data-target="#bs-example-navbar-collapse-1">
<span class="sr-only">Toggle navigation</span>
<span class="icon-bar"></span>
<span class="icon-bar"></span>
<span class="icon-bar"></span>
</button>
<a class="navbar-brand" href="#">Brand</a>
</div>
<!-- Collect the nav links, forms, and other content for toggling -->
<div class="collapse navbar-collapse" id="bs-example-navbar-collapse-1">
<ul class="nav navbar-nav">
<li class="active"><a href="#">Link</a></li>
<li><a href="#">Link</a></li>
<li class="dropdown">
<a href="#" class="dropdown-toggle" data-toggle="dropdown">Dropdown <span class="caret"></span></a>
<ul class="dropdown-menu" role="menu">
<li><a href="#">Action</a></li>
<li><a href="#">Another action</a></li>
<li><a href="#">Something else here</a></li>
<li class="divider"></li>
<li><a href="#">Separated link</a></li>
<li class="divider"></li>
<li><a href="#">One more separated link</a></li>
</ul>
</li>
</ul>
<form class="navbar-form navbar-left" role="search">
<div class="form-group">
<input type="text" class="form-control" placeholder="Search">
</div>
<button type="submit" class="btn btn-default">Submit</button>
</form>
<ul class="nav navbar-nav navbar-right">
<li><a href="#">Link</a></li>
<li class="dropdown">
<a href="#" class="dropdown-toggle" data-toggle="dropdown">Dropdown <span class="caret"></span></a>
<ul class="dropdown-menu" role="menu">
<li><a href="#">Action</a></li>
<li><a href="#">Another action</a></li>
<li><a href="#">Something else here</a></li>
<li class="divider"></li>
<li><a href="#">Separated link</a></li>
</ul>
</li>
</ul>
</div><!-- /.navbar-collapse -->
</div><!-- /.container-fluid -->
</nav>
<div class="container">
<p>Here comes some content.</p>
<p>Here comes some content.</p>
<p>Here comes some content.</p>
<p>Here comes some content.</p>
<p>Here comes some content.</p>
</div>
<footer>
<div class="container">
<div class="row">
<div class="col-md-8">
<p>Some footer-content</p>
<p>Some footer-content</p>
<p>Some footer-content</p>
</div>
<div class="col-md-4">
<p>Some footer-content</p>
<p>Some footer-content</p>
</div>
</div>
</div>
</footer>
CSS:
footer {
background-color: #eee;
padding-top: 15px;
padding-left: 15px;
}
这是我所拥有的最基本的东西,但你会明白这一点。 正如您所看到的,页脚位于空中某处。 我可以将它定位为绝对,并使其容易粘,但由于各种原因,我不希望这样。
我希望页脚低于整个内容(可以说,列为最后一个),但是,如果内容不足,我需要将页脚放在底部:0和左:0。
我不知道如何做到这一点。我的第一个猜测是使用JavaScript来查看有多少空间以及网站是否可滚动。
答案 0 :(得分:18)
这是我发现制作一个好页脚的最简单方法。将您的页脚中的所有内容包装在&#34;包装中&#34; DIV。然后将你的html和身高设置为100%,包装上的最小高度为100%。接下来,您需要为此包装器提供底部边距和底部填充,该封面与页脚的高度相同。它就像一个魅力。
html, body {
height: 100%;
}
.wrapper {
min-height: 100%;
margin-bottom: -100px;
padding-bottom: 100px;
}
footer {
height: 100px;
}
答案 1 :(得分:5)
答案 2 :(得分:2)
如果你真的想用javascript方式做,你可以使用这段代码实现它:
http://jsfiddle.net/z21nz89d/6/
$(function() {
var windowHeight = $(window).height();
var contHeight = $(".main-container").height();
var footHeight = $("footer").height();
var testHeight = windowHeight - footHeight;
if (contHeight < testHeight) {
$("footer").css("bottom", "0");
$("footer").css("left", "0");
}
});
确保添加以下css规则,HTML,BODY的内容非常重要。
html, body {
height: 100%;
width: 100%;
min-height: 100%;
padding: 0;
margin: 0;
}
你还必须将所有你的上下文包括在一个div的div中,一个div,比如说,“main-container”,这样你就可以测试整个身体的高度与内容的高度减去页脚,明白吗?
这就是JSFiddle。
请注意,这实际上不是这样做的语义方式。在我看来,纯粹的css粘性页脚会更好。如果你不能使用,这将有效。
答案 3 :(得分:2)
您可以使用此响应式css代码,它可以在所有浏览器中使用,并且可以根据浏览器大小在浏览器调整大小时进行更改。
HTML代码:
<div id="wrapper">
<div id="header">
Header is here
</div><!-- #header -->
<div id="content">
Content is here
</div><!-- #content -->
<div id="footer">
Footer is here
</div><!-- #footer -->
</div><!-- #wrapper -->
CSS代码:
html,
body {
margin:0;
padding:0;
height:100%;
}
#wrapper {
min-height:100%;
position:relative;
}
#header {
background:#ededed;
padding:10px;
text-align:center;
}
#content {
padding-bottom:100px; /* Height of the footer element */
text-align:center;
}
#footer {
background:#ffab62;
width:100%;
height:100px;
position:absolute;
bottom:0;
left:0;
text-align:center;
}
<强>结果:强>
答案 4 :(得分:1)
如果页脚的高度未知,最好使用flex,其中包含以下内容:
<body>
<header></header>
<div class="content"></div>
<footer></footer>
</body>
对于CSS,只需要这个:
body {
display: flex;
min-height: 100vh;
flex-direction: column;
}
.content {
flex: 1;
}
你不需要设置display:flex to body,它也可以是body内部的包装器。
请记住,这可能无法按预期在IE上运行(请参阅下面的CanIUse链接)。尽管如此,它对大多数人来说都很有用!
CanIUse link
有关示例,请参阅this link。
答案 5 :(得分:0)
如今,使用position: sticky
轻松实现。参见this reference:
根据文档的正常流程放置元素,然后基于top,right值相对于其最接近的滚动祖先和包含表相关元素的包含块(最近的块级祖先)进行偏移。 ,底部和左侧。偏移量不会影响其他任何元素的位置。
此值始终创建一个新的堆栈上下文。请注意,粘性元素“粘贴”到其最接近的祖先,该祖先具有“滚动机制”(在隐藏,滚动,自动或覆盖溢出时创建),即使该祖先不是最近的实际滚动祖先。这有效地抑制了任何“粘性”行为(请参阅W3C CSSWG上的Github问题)。
Examine this pen中的示例。