Blogger Information
Blog 11
fans 0
comment 0
visits 13359
Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template
Flex布局
Blueprint
Original
734 people have browsed it

复习

1.基于浮动的二列布局

  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>基于浮动的二列布局</title>
  7. <style>
  8. /* 设置页眉,页脚,边栏和内容区域的背景色 */
  9. header,
  10. footer,
  11. aside,
  12. main {
  13. background-color: #dedede;
  14. }
  15. /* 设置设置页脚、页眉的固定高度 */
  16. header,
  17. footer {
  18. height: 50px;
  19. }
  20. /* 设置边栏和内容的最小高度 */
  21. aside,
  22. main {
  23. min-height: 700px;
  24. }
  25. .wrap {
  26. /* 设置主体容器的宽度 */
  27. width: 1000px;
  28. /* 设置主体容器的边框样式 */
  29. border: 1px solid #000;
  30. /* BFC清除浮动的影响 */
  31. overflow: hidden;
  32. /* 主体容器的上下外边距 和左右居中*/
  33. margin: 10px auto;
  34. }
  35. aside {
  36. /* 边栏宽度 */
  37. width: 200px;
  38. /*向左浮动 */
  39. float: left;
  40. }
  41. main {
  42. /* 内容区的宽度 */
  43. width: 790px;
  44. /* 向右浮动 */
  45. float: right;
  46. }
  47. </style>
  48. </head>
  49. <body>
  50. <header>页眉</header>
  51. <div class="wrap">
  52. <aside>边栏</aside>
  53. <main>内容区</main>
  54. </div>
  55. <footer>页脚</footer>
  56. </body>
  57. </html>

效果图:

2.基于定位的二列布局

  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>基于定位的二列布局</title>
  7. <style>
  8. /* 设置设置页脚、页眉的固定高度 */
  9. header,
  10. footer,
  11. aside,
  12. main {
  13. background-color: #dedede;
  14. }
  15. /* 设置边栏和内容的最小高度 */
  16. header,
  17. footer {
  18. height: 50px;
  19. }
  20. aside,
  21. main {
  22. min-height: 700px;
  23. }
  24. .wrap {
  25. /* 设置主体容器的宽度 */
  26. width: 1000px;
  27. /* 设置主体容器的边框样式 */
  28. border: 1px solid #000;
  29. /* 设置主体容器的最小高度 */
  30. min-height: 700px;
  31. /* 主体容器的上下外边距和左右居中 */
  32. margin: 10px auto;
  33. /* 设置相对定位,给子元素提供绝对定位的参照物 */
  34. position: relative;
  35. /* 默认属性可省略 */
  36. left: 0;
  37. }
  38. aside {
  39. /* 边栏宽度 */
  40. width: 200px;
  41. /* 最小高度继承父容器 */
  42. min-height: inherit;
  43. /* 绝对定位 */
  44. position: absolute;
  45. }
  46. main {
  47. /* 内容区的宽度 */
  48. width: 790px;
  49. /* 最小高度继承父容器 */
  50. min-height: inherit;
  51. /* 绝对定位 */
  52. position: absolute;
  53. /* 定位属性 */
  54. right: 0;
  55. }
  56. </style>
  57. </head>
  58. <body>
  59. <header>页眉</header>
  60. <div class="wrap">
  61. <aside>侧边栏</aside>
  62. <main>主体内容区</main>
  63. </div>
  64. <footer>页脚</footer>
  65. </body>
  66. </html>

效果图:

3.内容的多栏/列显示

  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>内容的多栏/列显示</title>
  7. <style>
  8. /* 初始化 */
  9. * {
  10. /* 内边距清零 */
  11. padding: 0;
  12. /* 外边距清零 */
  13. margin: 0;
  14. /* 盒模型的内减模式 */
  15. box-sizing: border-box;
  16. }
  17. /* 设置html更元素的字体大小和颜色 */
  18. :root {
  19. font-size: 16px;
  20. color: #555;
  21. }
  22. div {
  23. /* 容器的边框样式 */
  24. border: 1px solid #000;
  25. /* 容器的内边距,rem为根元素字体单位 */
  26. padding: 1rem;
  27. /* 宽度 */
  28. width: 60rem;
  29. /* 容器的左右外边距和水平居中显示 */
  30. margin: 30px auto;
  31. }
  32. div {
  33. /*
  34. 分栏显示
  35. 列数和列宽设置多个
  36. 以css属性覆盖规则显示
  37. */
  38. column-count: 3; /* 分栏列数*/
  39. /* 分栏的列宽*/
  40. columns: 10rem;
  41. /*
  42. column-rule-style:分栏线的粗细
  43. column-rule-width:分栏线的宽度
  44. column-rule-color:分栏线的颜色
  45. */
  46. /* 多属性的简写 */
  47. column-rule: 10px solid #eee;
  48. }
  49. </style>
  50. </head>
  51. <body>
  52. <div>
  53. 6月11日以来,北京连续出现新增疫情,应急响应等级调整至二级,疫情防控形势严峻复杂。不少此前计划小长假外出的人们被迫放弃了计划。
  54. 端午大家还愿意出门吗?哪些出游方式是主流?飞猪报告显示,今年端午除京津冀地区外,全国各地周边游需求较高,整体出游人次已恢复到去年六成,京津冀地区约恢复到去年四成左右。由于假期天数短,整体出游积极性不及五一。
  55. 携程发布的《端午小长假旅游市场展望报告》指出,除北京等特殊地区外,端午小长假期间人们的出行、休闲需求依然存在,旅游市场的复苏基本面仍在。但相比前一阶段,人们的出行决策显然更加谨慎。
  56. 其中,上海、广州、深圳、成都、杭州、重庆、南京、西安在最热出发地与最热目的地中皆名列前茅。三亚—上海、成都—上海、上海—重庆、上海—三亚、上海—成都是端午期间最热门的航线。
  57. 火车票的预定数据显示,深圳—广州、上海—杭州、上海—南京、深圳—长沙、深圳—汕头、重庆—成都的预定热度排名最前。
  58. 此外,飞猪报告显示,端午出游积极的前十大城市分别为:上海、杭州、南京、广州、长沙、深圳、成都、三亚、重庆、厦门。
  59. 热门景区方面,携程报告显示,上海迪士尼度假区、珠海长隆海洋王国、中华恐龙园、上海海昌海洋公园、茶卡盐湖等高品质景区,是今年端午小长假期间游客们喜爱的热门景区。
  60. </div>
  61. </body>
  62. </html>

FlexBox弹性盒快速预览

  1. <style>
  2. .container {
  3. width: 300px;
  4. /* 如果这个容器中的内容要使用flexBox布局, 第一步就是必须将这个容器转为弹性盒子 */
  5. /* 弹性容器 */
  6. display: flex;
  7. }
  8. .container > .item {
  9. /* 一旦将父元素转为弹性容器,内部的“子元素”就会自动成为: 弹性项目 */
  10. /* 不管这个项目标签之前是什么类型,统统转为“行内块” */
  11. /* 行内:全部在一排显示 */
  12. /* 块: 可以设置宽和高 */
  13. /* flex: auto; */
  14. width: 60px;
  15. height: 60px;
  16. }
  17. </style>
  18. <body>
  19. <div class="container">
  20. <div class="item">1</div>
  21. <span class="item">2</span>
  22. <a class="item">3</a>
  23. <a class="item">4</a>
  24. </div>
  25. </body>

FlexBox弹性盒多行容器

属性:flex-wrap

  1. flex-wrap: nowrap;(默认)
  • 项目换行显示

2.flex-wrap: nowrap;

  • 项目不换行显示

单行容器中的项目对齐方式

属性:jsutify-content(项目属性)
1.justify-content: flex-start

  • 项目以主轴起始方向开始排列

2.justify-conetn: flex-end;

  • 项目以主轴结束方向排列

3.justify-content:center

  • 项目在主轴上居中显示

4.justify-content: space-between;

  • 相邻项目之间均分剩余空间

5.justify-content: space-around;

  • 项目周围均分剩余空间

6.justify-content: space-evenly;

  • 项目之间均分剩余空间

多行容器中的项目对齐方式

属性: align-content(项目属性)

1.align-content: stretch;

  • 项目整体拉伸适应大小

    2.align-content: flex-start;
  • 项目整体以交叉轴的起始方向排列

    3.align-content: flex-end
  • 项目整体以交叉轴的终止方向排列

    4.align-content: center;
  • 项目整体在交叉轴上居中排列

5.align-content: space-between;

  • 相邻的项目整体之间均分交叉轴上的剩余空间

6.align-content: space-around;

  • 项目整体周围均分交叉轴上的剩余空间

    7.align-content: space-evenly;
  • 项目整体之间均分交叉轴上的剩余空间

项目在交叉轴上的排列

属性:align-items(项目属性)
1.align-items: stretch(默认属性)

  • 项目在交叉轴上拉伸适应容器大小

    2.align-items: flex-start;
  • 项目在交叉轴的起始位置上

3.align-items: flex-end;

  • 项目怎交叉在的终止位置上

    4.align-items: center;
  • 项目在交叉轴上居中显示

主轴方向与项目排列的简写

属性: flex-flow

flex-directionflex-wrap属性的简写方式

  1. .box{
  2. flex-flow: column wrap;
  3. }
  4. /*等同于*/
  5. .box{
  6. flex-direction: column;
  7. flex-wrap: wrap;
  8. }

flex布局实现一个导航栏

  1. <style>
  2. /* 初始化操作 */
  3. * {
  4. padding: 0;
  5. margin: 0;
  6. box-sizing: border-box;
  7. }
  8. /* 去除a标签的样式 */
  9. a {
  10. text-decoration: none;
  11. color: #ccc;
  12. }
  13. /* 导航栏的高度、背景]内边距 */
  14. nav {
  15. height: 40px;
  16. background-color: #333;
  17. padding: 0 50px;
  18. /* 声明flex容器 */
  19. display: flex;
  20. }
  21. /* a链接的高度、行高和内边距 */
  22. nav a {
  23. height: inherit;
  24. line-height: 40px;
  25. padding: 0 15px;
  26. }
  27. /* 最后一个a标签的位置 */
  28. nav a:last-child {
  29. /* auto最大限度的占用多余空间 */
  30. margin-left: auto;
  31. }
  32. /* 鼠标悬浮时a链接的样式 */
  33. nav a:hover {
  34. background-color: #444;
  35. color: white;
  36. }
  37. </style>
  38. <body>
  39. <nav>
  40. <a href="">LOGO</a>
  41. <a href="">首页</a>
  42. <a href="">博客</a>
  43. <a href="">学院</a>
  44. <a href="">下载</a>
  45. <a href="">论坛</a>
  46. <a href="">登录/注册</a>
  47. </nav>
  48. </body>

项目属性:order控制项目顺序

属性: order(项目属性)

  • 默认值为0
  • 值越小优先级越高
  • 可以为负数
  1. <style>
  2. /* 项目的共同样式 */
  3. .item {
  4. width: 60px;
  5. background-color: #ccc;
  6. }
  7. .wrap {
  8. width: 300px;
  9. /* 声明容器 */
  10. display: flex;
  11. }
  12. .item:first-child{
  13. /* 降低排序优先级 */
  14. order: 5;
  15. }
  16. .item:last-child{
  17. /* 提示排序优先级 */
  18. order: -1;
  19. }
  20. </style>
  21. <body>
  22. <div class="wrap">
  23. <div class="item">1</div>
  24. <div class="item">2</div>
  25. <div class="item">3</div>
  26. <div class="item">4</div>
  27. <div class="item">5</div>
  28. </div>
  29. </body>

order小案例

  1. <style>
  2. /* 项目的共同样式 */
  3. .item {
  4. width: 400px;
  5. height: 40px;
  6. /* 行高 */
  7. line-height: 40px;
  8. margin: 5px 0;
  9. /* 边框 */
  10. border: 1px solid;
  11. text-align: center;
  12. /* 圆角 */
  13. border-radius: 10px;
  14. /* 给js提供定位父级 */
  15. position: relative;
  16. }
  17. .container {
  18. /* 声明flex容器 */
  19. display: flex;
  20. /* 主轴方向和不换行 */
  21. flex-flow: column nowrap;
  22. /* 项目在交叉轴上居中显示 */
  23. align-items: center;
  24. }
  25. </style>
  26. <body>
  27. <div class="container">
  28. <div class="item">
  29. 第一栏
  30. <button onclick="up(this)">Up</button>
  31. <button onclick="down(this)">Down</button>
  32. </div>
  33. <div class="item">
  34. 第二栏
  35. <button onclick="up(this)">Up</button>
  36. <button onclick="down(this)">Down</button>
  37. </div>
  38. <div class="item">
  39. 第三栏
  40. <button onclick="up(this)">Up</button>
  41. <button onclick="down(this)">Down</button>
  42. </div>
  43. <div class="item">
  44. 第四栏
  45. <button onclick="up(this)">Up</button>
  46. <button onclick="down(this)">Down</button>
  47. </div>
  48. </div>
  49. </body>
  50. <script>
  51. //offsetParent 获取定位父级
  52. let up = (ele) => (ele.offsetParent.style.order -= 1);
  53. let down = (ele) => (ele.offsetParent.style.order += 1);
  54. </script>

Correcting teacher:天蓬老师天蓬老师

Correction status:qualified

Teacher's comments:其实前二个案例就是用到了BFC, 感兴趣可以了解一下
Statement of this Website
The copyright of this blog article belongs to the blogger. Please specify the address when reprinting! If there is any infringement or violation of the law, please contact admin@php.cn Report processing!
All comments Speak rationally on civilized internet, please comply with News Comment Service Agreement
0 comments
Author's latest blog post
About us Disclaimer Sitemap
php.cn:Public welfare online PHP training,Help PHP learners grow quickly!