博客列表 >2019年12月23日 作业 弹性盒子

2019年12月23日 作业 弹性盒子

L
L原创
2019年12月25日 17:09:00866浏览

一、flex 弹性盒子/弹性容器

1.flex-direction 设置容器主轴方向

  1. flex-direction: row; /* 横向或水平 */
  2. flex-direction: column; /* 纵向或垂直 */

2.flex-wrap 是否允许换行显示

  1. flex-wrap: nowrap; /* 不允许换行 */
  2. flex-wrap: wrap; /* 允许换行 */

3.flex-flow 主轴方向与换行组合简写

  1. flex-flow: row wrap; /* 横向并允许换行 */
  2. ...

4.justify-content 元素在主轴上的排列与对齐方式

  1. justify-content: stretch; /* 将空间平均分配给元素(老师暂未提及,经查阅资料得知) */
  2. justify-content: flex-start; /* 元素紧靠主轴起点 */
  3. justify-content: flex-end; /* 元素紧靠主轴终点 */
  4. justify-content: center; /* 元素从弹性容器中心开始 */
  5. justify-content: space-between; /* 两端对齐,第一个元素靠起点,最后一个元素靠终点,余下元素平均分配空间 */
  6. justify-content: space-around; /* 分散对齐,每个元素两侧的间隔相等,元素之间的间隔比元素与边框的间隔大一倍 */
  7. justify-content: space-evenly; /* 平均对齐,元素之间的间隔平均分配 */

5.元素在交叉轴上的排列方式

  1. align-items: stretch; /* 元素被拉伸以适应容器(老师暂未提及,经查阅资料得知) */
  2. align-items: flex-start; /* 元素位于容器交叉轴的起点 */
  3. align-items: flex-end; /* 元素位于容器交叉轴的终点 */
  4. align-items: center; /* 元素位于容器的中心 */

6.多行显示的弹性容器,元素在交叉轴上的排列方式

  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; /* 平均对齐,元素之间的间隔平均分配 */

二、flex案例

demo1

预览图

代码

  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. <meta http-equiv="X-UA-Compatible" content="ie=edge" />
  7. <title>flex体验</title>
  8. <style>
  9. .container {
  10. width: 500px;
  11. margin: auto;
  12. height: 300px;
  13. outline: 1px dashed lightcoral;
  14. }
  15. .item {
  16. width: 300px;
  17. height: 150px;
  18. line-height: 150px;
  19. text-align: center;
  20. outline: 1px dashed lightgreen;
  21. }
  22. .container.tradition {
  23. position: relative;
  24. }
  25. .item.tradition {
  26. position: absolute;
  27. top: 0;
  28. right: 0;
  29. bottom: 0;
  30. left: 0;
  31. margin: auto;
  32. }
  33. .container.flex {
  34. display: flex;
  35. justify-content: center;
  36. align-items: center;
  37. }
  38. </style>
  39. </head>
  40. <body>
  41. <div class="container tradition">
  42. <div class="item tradition">传统</div>
  43. </div>
  44. <hr />
  45. <div class="container flex">
  46. <div class="item flex">flex</div>
  47. </div>
  48. </body>
  49. </html>

demo2

预览图

代码

  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. <meta http-equiv="X-UA-Compatible" content="ie=edge" />
  7. <title>flex</title>
  8. <style>
  9. .container {
  10. width: 800px;
  11. margin: auto;
  12. height: 500px;
  13. outline: 1px dashed lightblue;
  14. background-color: lightsalmon;
  15. display: flex;
  16. /* flex-direction: row; */
  17. /* flex-wrap: nowrap; */
  18. flex-flow: row wrap;
  19. justify-content: space-around;
  20. /* align-items: center; */
  21. align-content: space-around;
  22. }
  23. .item {
  24. width: 180px;
  25. text-align: center;
  26. height: 120px;
  27. line-height: 120px;
  28. outline: 1px dashed lightgreen;
  29. color: #fff;
  30. background-color: lightslategray;
  31. }
  32. </style>
  33. </head>
  34. <body>
  35. <div class="container">
  36. <div class="item">1</div>
  37. <div class="item">2</div>
  38. <div class="item">3</div>
  39. <div class="item">4</div>
  40. <div class="item">5</div>
  41. <div class="item">6</div>
  42. <div class="item">7</div>
  43. </div>
  44. </body>
  45. </html>

三、2019年12月20日作业问题及体会

问题:属性选择器采用精准定位
体会:2019年12月20日作业采用的是浮动float,相较flex而言,css代码较多,而flex拥有更简洁高效的方式去实现相同的效果,体现最为明显的是垂直居中,传统方式需要使用绝对定位,而flex方式在交叉轴上使用排列方式即可实现,效率更高

声明:本文内容转载自脚本之家,由网友自发贡献,版权归原作者所有,如您发现涉嫌抄袭侵权,请联系admin@php.cn 核实处理。
全部评论
文明上网理性发言,请遵守新闻评论服务协议