当前位置: 首页 > news >正文

【学习css1】flex布局-页面footer部分保持在网页底部

中间内容高度不够屏幕高度撑不开的页面时候,页面footer部分都能保持在网页页脚(最底部)的方法

1、首先上图看显示效果

2、奉上源码

2.1、html部分

<body><header>头部</header><main>主区域</main><footer>底部</footer>
</body>

2.2、css部分

<style>html, body {margin: 0;padding: 0;width: 100%;height: 100%;}body {min-height: 100vh;display: flex;flex-direction: column;}header {background: aquamarine;height: 40px;line-height: 40px;text-align: center;}footer {margin-top: auto;background: aquamarine;height: 50px;line-height: 50px;text-align: center;}main {align-self: center;/* 或者使用如下也可实现main区域居中显示 *//* margin: 0 auto; */background: aqua;width: 80%;}</style>

3、全部代码

<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><title>flexbox布局</title><style>html, body {margin: 0;padding: 0;width: 100%;height: 100%;}body {min-height: 100vh;display: flex;flex-direction: column;}header {background: aquamarine;height: 40px;line-height: 40px;text-align: center;}footer {margin-top: auto;background: aquamarine;height: 50px;line-height: 50px;text-align: center;}main {align-self: center;background: aqua;width: 80%;}</style>
</head>
<body><header>头部</header><main>主区域</main><footer>底部</footer>
</body>
</html>

 4、原理

1、首先,我们确保 body 元素至少会拉伸到屏幕的整个高度 min-height: 100vh 。如果内容较短(某些移动浏览器除外),这不会触发溢出,并且它将允许内容根据需要继续拉伸高度。

2、设置 flex-direction: column 在保留堆叠块元素方面保持正常文档流的行为(假设所有 body 块元素的直接子元素确实都是块元素)。

3、flexbox 的优势在于利用该 margin: auto 行为。这个奇怪的伎俩将导致边距填充它所设置的项目与其在相应方向上最近的兄弟姐妹之间的任何空间。设置 margin-top: auto 会有效地将页脚推到屏幕底部。 

5、缺陷

main区域不能自动高度填充 

http://www.lryc.cn/news/398631.html

相关文章:

  • Java中创建线程的几种方式
  • [A-04] ARMv8/ARMv9-Cache的相关策略
  • 【笔试常见编程题06】最近公共祖先、求最大连续bit数、二进制插入、查找组成一个偶数最接近的两个素数
  • 【工具分享】Gophish——网络钓鱼框架
  • “职业三大底层逻辑“是啥呢?
  • 飞睿智能无线高速uwb安全数据传输模块,低功耗、抗干扰超宽带uwb芯片传输速度技术新突破
  • 手把手教你从微信中取出聊天表情图片,以动态表情保存为gif为例
  • 【深度学习】图形模型基础(5):线性回归模型第三部分:线性回归模型拟合
  • 【Git 入门】初始化配置与新建仓库
  • C语言 求两个整数的最大公约数和最小公倍数
  • Linux arm64平台指令替换函数 aarch64_insn_patch_text_nosync
  • 谷歌浏览器插件开发笔记0.1.033
  • ETag:Springboot接口如何添加Tag
  • JavaSe系列二十七: Java正则表达式
  • (深度估计学习)Depth Anything V2 复现
  • C语言——printf、scanf、其他输入输出函数
  • adb 常用的命令总结
  • Java发展过程中,JVM的演进
  • 笔记:在Entity Framework Core中如何处理多线程操作DbContext
  • RabbitMQ 高级功能
  • 软件架构之开发管理
  • 【Linux 基础】df -h 的输出信息解读
  • 南航秋招指南,线上测评和线下考试
  • 用MATLAB绘制三向应力圆
  • PyTorch 1-深度学习
  • Hi3861鸿蒙开发环境搭建
  • 解决RedisTemplate配置JSON序列化后@Cacheable序列化仍然是JDK序列化的问题
  • 人脸检测+调整分辨率+调整帧率
  • C++相关概念和易错语法(19)(继承规则、继承下的构造和析构、函数隐藏)
  • 使用GPT-4和ChatGPT构建应用项目