【HTML】添加一个自适应footer

效果图

一个可调整的输入框和footer
一个可调整的输入框和footer
|
|
–> 调整输入框大小后,footer自动下移
调整输入框大小后,footer自动下移

效果说明

所谓自适应的footer,就是指:footer的至多出现在网页底部,并且如果允许,总是出现在底部。

这就保证了:网页加载时,用户能够在最底部看到footer;如果网页内容高度发生变化,footer要么上移要么下移,上移不能超过底部之上,保证和内容的和平共处。

布局思路

这个布局的难点主要是内容自适应: 内容不足窗口高度时,显示在底部;内容超过窗口是,显示在最底部。

最简单的思路可分为三个步骤:1.设置容器的最小空间 2.元素自动占据容器的剩余空间 3.定位到最底部

首先,要明白一点:网页显示时,就chrome浏览器而言,html和body的高度就是内容的大小。
通过将html的height设置成100%, html可以占据整个屏幕;但是body仍旧是内容大小;为此,可将body的大小也设置成100%.但是设置之后,body的大小不能发生变化,类似于上面的输入框扩大到最大大小后,无法扩大。此时,可将body的height换成min-height解决不可扩展的问题。

body默认情况下可能有margin,设置min-height100%可能出现滚动条,因此设置其margin-top,margin-bottom均为0.

因此,为了解决网页加载时,body的大小没有占据屏幕大小的情况,设置:

html { height: 100% }
body { min-height: 100% }

通过将body铺满,然后我们可以使用flex的两个特性:1.定位特性,即通过设置align-itemsflex-end,使元素自动定位到底部 2.使用flex-grow的特殊情况,当flex容器中只有两个元素时,如果其中一个元素没有设置flex-grow(或者为0),另外一个元素设置为任意值,则其将铺满剩余空间。

HTML代码

<!Doctype html>
<html xmlns=http://www.w3.org/1999/xhtml style="height: 100%">

<head>
    <title>Test Platform - An Adaptive Footer</title>

    <meta http-equiv=Content-Type content="text/html;charset=utf-8">
    <meta charset="UTF-8">
</head>

<body style="min-height: 100%;margin-top: 0;margin-bottom: 0;display: flex;flex-direction: column">
<div id="content">
    <textarea placeholder="change my height"></textarea>
</div>
<footer style="text-align: center; flex-grow: 1;display: flex;align-items: flex-end;justify-content: center">
    <p>Designed by Fulton Shaw</p>
</footer>

</body>

</html>
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值