- android - 多次调用 OnPrimaryClipChangedListener
- android - 无法更新 RecyclerView 中的 TextView 字段
- android.database.CursorIndexOutOfBoundsException : Index 0 requested, 光标大小为 0
- android - 使用 AppCompat 时,我们是否需要明确指定其 UI 组件(Spinner、EditText)颜色
我正在尝试显示 footer
元素始终与窗口底部对齐,无论页面内容如何。
行为应该如下:
我发现这很棘手 snippet
#element-align {
position: fixed;
bottom: 0;
}
但我认为这不适合我的情况:当我调整窗口大小时,页脚高度发生变化,我无法用内容的 padding-bottom
值对其进行补偿。如果高度超过填充,内容将隐藏在页脚下。这是我当前的 jsFiddle .
有什么想法吗?谢谢!
最佳答案
这里的关键是页脚必须是文档流的一部分,以防万一#content 比视口(viewport)高。使用 #content { min-height: 100% }
将页脚向下推到页面底部,使用填充和负边距为页眉/页脚腾出空间。
唯一的缺点是您需要知道页眉和页脚的高度,如果它们的高度是可变的,那么您需要使用 javascript。但它仍然很轻。
如果您知道页眉/页脚的高度,那么您可以对这些值进行硬编码。
http://jsfiddle.net/michaelburtonray/utg0sbv1/9/
HTML
<header>Header content</header>
<section id="content">Lorem ipsum dolor sit amet, consectetur adipiscing elit. Maecenas molestie condimentum condimentum. In id interdum lectus. Pellentesque habitant morbi tristique senectus et netus et malesuada fames ac turpis egestas. Duis semper venenatis bibendum. Suspendisse id tellus quis sapien malesuada ornare. Proin non dui vel dui placerat bibendum. Donec euismod, nisl sed vulputate fringilla, dolor arcu condimentum enim, rutrum luctus mi tortor id velit. Praesent hendrerit, odio a aliquam vestibulum, orci purus placerat mi, vel facilisis libero orci sit amet purus. Pellentesque quam sem, iaculis eu sem in, suscipit pulvinar libero. Duis vulputate sollicitudin dolor nec lobortis. Cras tempus, sapien at vestibulum semper, elit lectus viverra metus, id adipiscing mi orci a odio. Proin pulvinar et nisl vitae faucibus. Integer pretium, tortor sit amet aliquet feugiat, lacus lectus facilisis ligula, nec sollicitudin lacus quam sed sapien. Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Maecenas interdum massa nulla, sed iaculis augue bibendum nec. Morbi elementum aliquam nunc, vitae elementum arcu bibendum non.
</section>
<footer>Footer content footer content footer content footer content footer content</footer>
CSS
html, body {
height: 100%;
}
body {
margin: 0;
}
header,footer {
-webkit-box-sizing: border-box;
-moz-box-sizing: border-box;
box-sizing: border-box;
padding:20px;
background:#222;
color:#fff;
}
header {
position: absolute;
top: 0;
right: 0;
left: 0;
}
#content {
box-sizing: border-box;
min-height: 100%;
}
footer {
/* position:fixed; */
/* bottom:0px; */
/* z-index:2; */
}
JavaScript
var footer_height,
window_width = 0,
$header = $('header'),
$content = $('#content'),
$footer = $('footer');
function checkFooter() {
requestAnimationFrame(checkFooter);
// Do calculation only if window width has changed.
if(window_width !== window.innerWidth) {
window_width = window.innerWidth;
header_outer_height = $header.outerHeight();
footer_outer_height = $footer.outerHeight();
$content.css({
'padding-top': header_outer_height,
'padding-bottom': footer_outer_height
});
$footer.css('margin-top', footer_outer_height*-1);
}
}
checkFooter();
更新
正如@Austin Brunkhorst 指出的那样,您也可以只使用 window.onresize 事件。
var footer_height,
window_width = 0,
$header = $('header'),
$content = $('#content'),
$footer = $('footer');
function checkFooter() {
requestAnimationFrame(function(){
window_width = window.innerWidth;
header_outer_height = $header.outerHeight();
footer_outer_height = $footer.outerHeight();
$content.css({
'padding-top': header_outer_height,
'padding-bottom': footer_outer_height
});
$footer.css('margin-top', footer_outer_height*-1);
});
}
window.addEventListener('resize', checkFooter);
关于css - 将元素对齐到窗口底部,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25410174/
如何在不使用垫片的情况下将 View 定位在底部。我知道我可以在 VStack 中放置一个间隔器和我的 View 来实现它,但我不想使用一个间隔器,因为我不希望我的 View 占据所有的垂直空间。使用
我想让文本 float 到现有标签的右下角。 我仍在使用旧学校表(编辑现有代码)。我的代码是这样的:
我有一个包含文本的表格单元格,但我怎样才能使文本齐平到单元格的顶部或底部(上面没有填充)?我试过垂直对齐,但它仍然没有到达顶部“边缘”。 我的代码 3.2325
我想用 javascript 打印一个特殊的页面 div。 function printDiv(divName) { var printContents = document
我需要检查元素是否距离页面底部 x 像素,以动态加载新内容。目前,即使栏位于底部,scrollTop 和高度也不匹配。 jquery 是允许的,虽然基本的 javascript 会更有帮助。 最佳答案
我正在用 pygame 重新制作 flappy bird,但主题是星球大战。我已经完成了游戏的美术和一般格式设置,但现在我需要调整细节。我一直在改变数字,试图让光剑完全到达屏幕的顶部和底部,因为目前有
http://pastehtml.com/view/bfzerlo1m.html 如何将红色框放在橙色 div 底部的 CENTER + 中? 红框的高度和宽度都是动态的,每个框都不同.. (它需要在
我正在研究和测试表格。到目前为止,我成功地使用 following fiddle 将选择框列表中的项目一项一项地向上和向下移动。 . 代码实例(向上移动): function moveUp() { $
在设计 IOS 应用程序时,我可以在页脚放置“后退”按钮功能吗? 最佳答案 我认为指南中没有任何内容禁止这样做,但是您的潜在用户习惯于将后退按钮放在左上角,因此除非您有充分的理由将后退按钮放在底部,并
你可以只在顶部/底部而不是所有(T、B、L、R)设置单元格填充或间距吗? 最佳答案 CSS? td { padding-top: 2px; padding-bottom: 2px; } 关于H
我正在为我的 React 应用程序使用无限滚动,并具有检测我何时恰好位于页面底部的功能: const [isFetching, setIsFetching] = useState(false); //
所以我有一个页面,其中有一个类似聊天的 div,里面充满了文本。它具有固定的高度和宽度(由 css 定义)。 我需要它在每次更新时滚动到底部,这是我到目前为止使用的 JS: $("#div1").an
我遇到了与此处描述的相同的问题:UIWebView doesn't scroll to the bottom of the webpage loaded/created (不幸的是没有人回答) 我有一
我有一个溢出设置为滚动的 div,它本质上是逐行从文件中流式传输数据。我想在流溢出时自动滚动到 div 的底部,但不使用“单击此处滚动到底部”按钮。 我已经知道 scrollTop = scrollH
我正在 Android studio 中构建一个应用程序,但遇到了一些问题。我在 main_activity.xml 中有一个 ImageView
我有一个扩展 Jpanel 的类,里面有一个动画。我有两个操作按钮可以停止和启动它,但是我需要这些按钮出现在 Jpanel 的底部。我已经尝试过: add(go,BOTTOM_ALIGNMENT);
嗨,我正在为ios设备(ipad)开发phonegap / cordova项目。该应用程序通过蓝牙键盘接收输入文本(因为我不想在屏幕上显示键盘)。到目前为止,应用程序可以按预期接收输入。但是关于外观,
我想在底部放置一个页脚。 出于某种原因,它会像这样出现。 在 index.html 中,我有:
我得到了一个带有内联编辑功能的 jqgrid,并且可以添加新行。 目前,新行以“编辑”模式显示在网格顶部。我想要的是将新行添加到网格底部,因为我的“添加新行”按钮位于自定义底部分页器中... 有人知道
在 Swift 3 中,我以编程方式创建了一个(底部)工具栏,其中包含自定义按钮,中间用灵活的垫片分隔自定义按钮,将一个(“上一个”)推到左边缘,另一个(“下一个”)到 View 的右边缘。但我无法显
我是一名优秀的程序员,十分优秀!