博主信息
博文 30
粉丝 0
评论 2
访问量 37809
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
Flex 容器常用属性与简单案例
司马青衫
原创
861人浏览过

Flex常用属性与简单案例

Flex 常用属性

1、应用 Flex 布局

  • 容器应用弹性盒子布局代码display:flex
  • 容器内的子元素就会成为弹性项目
  • 弹性项目成为行内块(可以设置宽度高度)
  • 有已分配空间与剩余空间概念
  • 弹性盒子有主轴、交叉轴概念 所有弹性项目都会沿主轴排列

  • 示例代码

  1. <!DOCTYPE html>
  2. <html lang="en">
  3. <head>
  4. <meta charset="UTF-8" />
  5. <meta name="viewport" content="width=device-width, initial-scale=1.0" />
  6. <title>Flex常用属性</title>
  7. <style>
  8. .container {
  9. /* 当前容器应用flex布局 */
  10. display: flex;
  11. }
  12. </style>
  13. </head>
  14. <body>
  15. <div class="container">
  16. <div class="item">1</div>
  17. <div class="item">2</div>
  18. <div class="item">3</div>
  19. </div>
  20. </body>
  21. </html>
  • 显示效果

2、Flex 的单行容器

  • Flex 默认是单行容器flex-wrap: nowrap;
  • 单行容器的项目排列对齐方式控制代码justify-content
  • 本质是设置剩余空间与项目的排列方式

  • 示例代码

  1. <!DOCTYPE html>
  2. <html lang="en">
  3. <head>
  4. <meta charset="UTF-8" />
  5. <meta name="viewport" content="width=device-width, initial-scale=1.0" />
  6. <title>Flex常用属性</title>
  7. <style>
  8. .container {
  9. /* 当前容器应用flex布局 */
  10. display: flex;
  11. /* 单行容器项目对齐排列方式 */
  12. /* 项目在容器的开头 剩余空间在容器结尾 */
  13. justify-content: flex-start;
  14. /* 项目在容器的结尾 剩余空间在容器开头 */
  15. justify-content: flex-end;
  16. /* 项目居中 剩余空间在容器两端平均分配 */
  17. justify-content: center;
  18. /* 剩余空间平均分布在项目与项目之间 */
  19. justify-content: space-between;
  20. /* 每个项目左右两边都带有一样大小的剩余空间 */
  21. /* 即剩余空间被平均分配成项目数量的1/2n倍 */
  22. /* 每个项目左右两边都带1/2n的剩余空间 */
  23. /* 项目之间的剩余空间大小叠加 */
  24. justify-content: space-around;
  25. /* 剩余空间平均分配在每个项目的两边 */
  26. justify-content: space-evenly;
  27. }
  28. </style>
  29. </head>
  30. <body>
  31. <div class="container">
  32. <div class="item">1</div>
  33. <div class="item">2</div>
  34. <div class="item">3</div>
  35. </div>
  36. </body>
  37. </html>
  • 显示效果

3、Flex 的多行容器

  • Flex 改成多行容器flex-wrap: wrap;
  • 多行容器的项目排列对齐方式控制代码align-content
  • 本质是设置剩余空间与项目的排列方式

  • 示例代码

  1. <!DOCTYPE html>
  2. <html lang="en">
  3. <head>
  4. <meta charset="UTF-8" />
  5. <meta name="viewport" content="width=device-width, initial-scale=1.0" />
  6. <title>Flex常用属性</title>
  7. <style>
  8. .container {
  9. /* 当前容器应用flex布局 */
  10. display: flex;
  11. /* 定义容器大小 */
  12. width: 100px;
  13. height: 60px;
  14. flex-wrap: wrap;
  15. /* 多行容器项目对齐排列方式 */
  16. /* 项目在容器的开头 剩余空间在容器结尾 */
  17. align-content: flex-start;
  18. /* 项目在容器的结尾 剩余空间在容器开头 */
  19. align-content: flex-end;
  20. /* 项目居中 剩余空间在容器两端平均分配 */
  21. align-content: center;
  22. /* 剩余空间平均分布在行与行之间 */
  23. align-content: space-between;
  24. /* 每行上下两边都带有一样大小的剩余空间 */
  25. /* 即剩余空间被平均分配成行数量的1/2n倍 */
  26. /* 每行上下两边都带1/2n的剩余空间 */
  27. /* 行之间的剩余空间大小叠加 */
  28. align-content: space-around;
  29. /* 剩余空间平均分配在每行的两边 */
  30. align-content: space-evenly;
  31. }
  32. .container > .item {
  33. /* 定义项目的大小 */
  34. width: 50px;
  35. }
  36. </style>
  37. </head>
  38. <body>
  39. <div class="container">
  40. <div class="item">1</div>
  41. <div class="item">2</div>
  42. <div class="item">3</div>
  43. </div>
  44. </body>
  45. </html>
  • 显示效果

4、Flex 项目在交叉轴上排列方式

  • 使用align-item控制排列方式
  • 默认是align-items: stretch;

  • 示例代码

  1. <!DOCTYPE html>
  2. <html lang="en">
  3. <head>
  4. <meta charset="UTF-8" />
  5. <meta name="viewport" content="width=device-width, initial-scale=1.0" />
  6. <title>Flex常用属性</title>
  7. <style>
  8. .container {
  9. /* 当前容器应用flex布局 */
  10. display: flex;
  11. /* 定义容器大小 */
  12. width: 100px;
  13. height: 60px;
  14. /* 项目被拉伸适应容器高度 */
  15. align-items: stretch;
  16. /* 项目在交叉轴方向上的开头排列 */
  17. align-items: flex-start;
  18. /* 项目在交叉轴方向的结尾排列 */
  19. align-items: flex-end;
  20. /* 项目在交叉轴方向的中间排列 */
  21. align-items: center;
  22. }
  23. </style>
  24. </head>
  25. <body>
  26. <div class="container">
  27. <div class="item">1</div>
  28. <div class="item">2</div>
  29. <div class="item">3</div>
  30. </div>
  31. </body>
  32. </html>
  • 显示效果

5、Flex 设置主轴为垂直方向

  • 使用代码flex-direction: column;

  • 示例代码

  1. <!DOCTYPE html>
  2. <html lang="en">
  3. <head>
  4. <meta charset="UTF-8" />
  5. <meta name="viewport" content="width=device-width, initial-scale=1.0" />
  6. <title>Flex常用属性</title>
  7. <style>
  8. .container {
  9. /* 当前容器应用flex布局 */
  10. display: flex;
  11. /* 设置主轴为垂直方向(默认是水平方向) */
  12. flex-direction: column;
  13. }
  14. </style>
  15. </head>
  16. <body>
  17. <div class="container">
  18. <div class="item">1</div>
  19. <div class="item">2</div>
  20. <div class="item">3</div>
  21. </div>
  22. </body>
  23. </html>
  • 显示效果

  • 可以看出原先水平排列的 123 成了竖直排列的 123
  • 项目的对齐排列效果都会随着主轴变化而变化

6、Flex 控制项目显示顺序

  • 使用order进行控制
  • 默认参数为 0

  • 示例代码

  1. <!DOCTYPE html>
  2. <html lang="en">
  3. <head>
  4. <meta charset="UTF-8" />
  5. <meta name="viewport" content="width=device-width, initial-scale=1.0" />
  6. <title>Flex常用属性</title>
  7. <style>
  8. .container {
  9. /* 当前容器应用flex布局 */
  10. display: flex;
  11. }
  12. .container > .item:first-of-type {
  13. /* 将第一个项目调整到第三个显示 */
  14. order: 3;
  15. }
  16. </style>
  17. </head>
  18. <body>
  19. <div class="container">
  20. <div class="item">1</div>
  21. <div class="item">2</div>
  22. <div class="item">3</div>
  23. </div>
  24. </body>
  25. </html>
  • 显示效果

  • 可以看出原先 1 在第一个显示 现在显示在最后面

Flex 布局简单导航案例

  • 示例代码
  1. <!DOCTYPE html>
  2. <html lang="en">
  3. <head>
  4. <meta charset="UTF-8" />
  5. <meta name="viewport" content="width=device-width, initial-scale=1.0" />
  6. <title>Flex布局简单导航案例</title>
  7. <style>
  8. /* 页面初始化 */
  9. * {
  10. padding: 0;
  11. margin: 0;
  12. box-sizing: border-box;
  13. }
  14. nav {
  15. /* 设置高度 */
  16. height: 40px;
  17. /* 设置导航栏背景颜色 */
  18. background-color: #333;
  19. /* 设置导航内边距 左右40px */
  20. padding: 0 40px;
  21. /* 导航栏使用flex布局 */
  22. display: flex;
  23. }
  24. nav > a {
  25. height: 40px;
  26. line-height: 40px;
  27. /* a标签去除下划线 */
  28. text-decoration: none;
  29. color: #ccc;
  30. padding: 0 10px;
  31. }
  32. nav > a:last-of-type {
  33. margin-left: auto;
  34. }
  35. nav > a:hover {
  36. color: white;
  37. background-color: seagreen;
  38. }
  39. </style>
  40. </head>
  41. <body>
  42. <header>
  43. <nav>
  44. <a href="">主页</a>
  45. <a href="">导航1</a>
  46. <a href="">导航2</a>
  47. <a href="">导航3</a>
  48. <a href="">导航4</a>
  49. <a href="">导航5</a>
  50. <a href="">登录/注册</a>
  51. </nav>
  52. </header>
  53. </body>
  54. </html>
  • 显示效果

批改老师:天蓬老师天蓬老师

批改状态:合格

老师批语:通过这个导航, 可以体会到了flex的强大与方便之处
本博文版权归博主所有,转载请注明地址!如有侵权、违法,请联系admin@php.cn举报处理!
全部评论 文明上网理性发言,请遵守新闻评论服务协议
0条评论
作者最新博文
关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新 English
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号

  • 登录PHP中文网,和优秀的人一起学习!
    全站2000+教程免费学