博客列表 >Flex弹性盒子基础属性,主轴与交叉轴理解,剩余空间排列理解 - 第九期线上班20191105

Flex弹性盒子基础属性,主轴与交叉轴理解,剩余空间排列理解 - 第九期线上班20191105

MArtian
MArtian原创
2019年11月05日 15:43:142161浏览

做了单行和多行元素的排序,没有把所有执行结果都截图出来。

  1. <style type="text/css">
  2. *{margin:0;padding:0}
  3. h3{
  4. text-align: center;
  5. font-size: 16px;
  6. width:500px;
  7. padding: 15px;
  8. }
  9. .item{
  10. background:#ffcaca;
  11. border:solid 1px #919191;
  12. box-sizing: border-box;
  13. text-align: center;
  14. padding: 50px;
  15. width:100px;
  16. }
  17. .container{
  18. width:500px;
  19. height:500px;
  20. display: flex;
  21. flex-flow:row wrap;
  22. /*justify-content: space-around; */
  23. /*justify-content: space-between;*/
  24. justify-content: space-evenly;
  25. align-items: center; /*交叉轴居中*/
  26. /*align-items:flex-start; 交叉轴起始线开始*/
  27. /*align-items:end-start; 交叉轴终止线开始*/
  28. /*align-items:stretch; 交叉轴占满列*/
  29. border:solid 2px #7f6ded;
  30. box-sizing: border-box;
  31. }
  32. </style>
  33. <h3>单行排列</h3>
  34. <div class="container">
  35. <div class="item">1</div>
  36. <div class="item">2</div>
  37. <div class="item">3</div>
  38. <div class="item">4</div>
  39. </div>

单行排列

  1. <style type="text/css">
  2. h3{
  3. text-align: center;
  4. font-size: 16px;
  5. width:500px;
  6. padding: 15px;
  7. }
  8. .item{
  9. background:#ffcaca;
  10. border:solid 1px #919191;
  11. box-sizing: border-box;
  12. text-align: center;
  13. padding: 50px;
  14. width:100px;
  15. }
  16. .container2{
  17. width:500px;
  18. height:500px;
  19. padding: 20px;
  20. display: flex;
  21. flex-flow:column wrap;
  22. /*justify-content: space-around; */
  23. /*justify-content: space-between;*/
  24. justify-content: space-evenly;
  25. /*align-content:space-around;*/
  26. /*align-content:space-evenly;*/
  27. align-content:space-between;
  28. border:solid 2px #7f6ded;
  29. box-sizing: border-box;
  30. }
  31. </style>
  32. <h3>多行排列</h3>
  33. <div class="container2">
  34. <div class="item">1</div>
  35. <div class="item">2</div>
  36. <div class="item">3</div>
  37. <div class="item">4</div>
  38. <div class="item">5</div>
  39. <div class="item">6</div>
  40. <div class="item">7</div>
  41. <div class="item">8</div>
  42. <div class="item">9</div>
  43. </div>

"多行排列"

Flex弹性盒子布局的两个难点是交叉轴剩余空间分配方案
交叉轴交叉轴垂直于主轴的轴线, flex-direction 控制元素的排列方向的垂直方向就是交叉轴。


剩余空间分配方案属性图解


space-around
space-between
space-evenly

不管是justify-content还是align-content原理都是一样的,只是排列方向不同。

总结


1.display:flex/inline-flex的区别是,flex是块级弹性盒子 width:100% 独占一行,inline-flex是内联弹性盒子宽高跟随内容,多个inline-flex可以在同行。
2.盒子的交叉轴并不是垂直方向,取决与flex-direction属性的值是row还是columnrow 交叉轴就是垂直方向,column 交叉轴就是水平方向。
3.justify-content 可以控制主轴元素排列,无论单行还是多行都可以操作。
4.交叉轴单行多行需要分别处理,align-items 是单行排列,align-items只对多行交叉轴有效果。
5.flex-startflex-end 分别指向容器的起止和终止,row 水平方向是最左最右row 水平方向是最上最下
6.stretch 是交叉轴元素占满列。

默写3遍Flex属性。
write1
write2

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