gpt4 book ai didi

CSS 使 HTML 页面页脚以最小高度停留在页面底部,但不与页面重叠

转载 作者:数据小太阳 更新时间:2023-10-29 09:04:48 26 4
gpt4 key购买 nike

我有以下页面(死链接:http://www.workingstorage.com/Sample.htm)有一个页脚,我无法将其放在页面底部。

我想要页脚

  • 当页面较短且未满屏时贴在窗口底部,
  • 停留在文档末尾,当内容超过一屏时(而不是重叠内容),正常向下移动。

CSS 是继承的,让我感到困惑。我似乎无法正确更改它以在内容上放置最小高度或使页脚位于底部。

最佳答案

以下是我的4种不同的方法:

在每个示例中,文本都是可自由编辑的,以说明内容在不同场景中的呈现方式。


1) flex 盒子

body{ min-height: 100vh; margin:0; }

header{ min-height:50px; background:lightcyan; }
footer{ min-height:50px; background:PapayaWhip; }

/* The article fills all the space between header & footer */
body{ display:flex; flex-direction:column; }
article{ flex:1; }
<body>
<header contentEditable>Header</header>
<article contentEditable>Content</article>
<footer contentEditable>Footer</footer>
</body>


2) 网格

body{ 
min-height: 100vh;
margin: 0;

display: grid;
grid-template-rows: auto 1fr auto;
}

header{
min-height:50px;
background:lightcyan;
}

footer{
min-height:50px;
background:PapayaWhip;
}
<body>
<header contentEditable>Header</header>
<article contentEditable>Content</article>
<footer contentEditable>Footer</footer>
</body>


下面的这个方法使用了一个“技巧”,通过放置一个 ::after body 上的伪元素, 并将其设置为具有页脚的精确高度,因此它将占据与页脚完全相同的空间,因此当页脚为 absolute 时放置在它上面,看起来页脚真的占用了空间并消除了它的绝对定位的负面影响(例如,越过正文的内容)

3) position:absolute (没有动态页脚高度)

body{ min-height:100vh; margin:0; position:relative; }
header{ min-height:50px; background:lightcyan; }
footer{ background:PapayaWhip; }

/* Trick: */
body {
position: relative;
}

body::after {
content: '';
display: block;
height: 50px; /* Set same as footer's height */
}

footer {
position: absolute;
bottom: 0;
width: 100%;
height: 50px;
}
<body>
<header contentEditable>Header</header>
<article contentEditable>Content</article>
<footer contentEditable>Footer</footer>
</body>


4) 表格布局

html{ height:100%; }
body { min-height:100%; margin:0; }

header {
height: 50px;
background: lightcyan;
}

article {
height: 1%;
}

footer {
height: 50px;
background: PapayaWhip;
}

/**** Trick: ****/

body {
display: table;
width: 100%;
}

body > footer {
display: table-row;
}
<body>
<header contentEditable>Header</header>
<article contentEditable>Content</article>
<footer contentEditable>Footer</footer>
</body>

关于CSS 使 HTML 页面页脚以最小高度停留在页面底部,但不与页面重叠,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/643879/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com