给出一个答案,因为我的声誉不足以评论。但不要将此视为答案,只是一个附加信息,作为我自己,在页脚和定位方面都有一些问题。
设置页面时,让我的页脚始终保持在底部,位置绝对,主容器/包装器具有相对位置。
然后我发现我的文本内容和同一内容内的菜单(页眉和页脚之间的白色部分)存在一些问题,当将这些设置为绝对时,页脚不再停留。
正如你所说,定位是一个复杂的主题。
我的解决方案,对于我想要在网页中“绝对”位置的内容,而不是被推到一边,例如打开下拉菜单时,实际上是给它相对位置,并将其放在下面 35em我的下拉菜单。
(35em 是我的下拉菜单的高度,完全展开时)
然后,Top:-35em,对于之前被推到一边的内容。
然后添加 margin-bottom:-35em。
这样,内容在我的下拉菜单“下方”,但在视觉上它与我的下拉菜单并排!
下面到页脚的空白区域只有 10em 的边距,就像在开始玩这个之前一样。
所以我的解决方案是这样的:
html, body {
margin:0;
padding:0;
height:100%;
}
h1 {
margin:0;
}
#webpage {
position:relative;
min-height:100%;
margin:0;
overflow:auto;
}
#header {
height:5em;
width:100%;
padding:0;
margin:0;
}
#text {
position:relative;
margin-bottom:-32em;
padding-top:2em;
padding-right:2em;
padding-bottom:10em;
background-repeat:no-repeat;
width:70%;
padding-left:auto;
margin-left:auto;
margin-right:auto;
right:10em;
float:right;
top:-32em;
}
#dropdown {
position:absolute;
left:0;
width:20%;
clear:both;
display:block;
position:relative;
top:1em;
height:35em;
}
#footer {
position:absolute;
width:100%;
right:0;
bottom:0;
height:5em;
margin:0;
margin-top:5em;
}
我看到你的问题得到了很好的回答,但是经过很多麻烦后,我发现这是一个非常好的解决方案,并且是一种更好地理解定位如何工作的方法..
当我将文本内容放在下拉菜单下方时,它不会将我的文本推到一边。
如果我将文本更改为绝对位置,则页脚不会留在原位。
因为我相信这对比我更多的人来说是一个问题,所以我在这里添加了这个。
实际上发生的事情是,我将文本 35ems 放在下拉列表下方。
然后,我在视觉上把它放在彼此旁边,相对位置,顶部:-35em;,然后将下面的巨大空间拉平,边距:-35em;
当人们更好地理解这些位置时,有时会低估负值,非常好的功能!
当然,固定位置,对于我的页脚来说似乎也是合理的,但如果文本或内容比视口长,我确实希望页脚低于视口。
如果页面内容很少,则留在底部。
这个 setupp 很好地解决了这个问题,记住使用 'em' 而不是 'px' 以获得更流畅/动态的页面布局! :)
(可能有更好的解决方案,但这适用于跨平台和设备)。