01.弹性盒.html 3.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113
  1. <!DOCTYPE html>
  2. <html lang="en">
  3. <head>
  4. <meta charset="UTF-8">
  5. <meta http-equiv="X-UA-Compatible" content="IE=edge">
  6. <meta name="viewport" content="width=device-width, initial-scale=1.0">
  7. <title>Document</title>
  8. <style>
  9. *{
  10. margin: 0;
  11. padding: 0;
  12. list-style: none;
  13. }
  14. ul{
  15. /* width: 800px; */
  16. width: 500px;
  17. border: 10px red solid;
  18. /* 将ul设置为弹性容器 */
  19. display: flex;
  20. /*
  21. flex-direction 指定容器中弹性元素的排列方式
  22. 可选值:
  23. row 默认值,弹性元素在容器中水平排列(左向右的顺序排列)
  24. -主轴 自左向右
  25. row-reverse 弹性元素在容器中反向水平排列(右向左的顺序排列)
  26. -主轴 自右向左
  27. column 弹性元素纵向排列(从上向下)
  28. -主轴 自上向下
  29. column-reverse 弹性元素反向纵向排列(从下向上)
  30. -主轴 自下向上
  31. 主轴:
  32. 弹性元素的排列方向称为主轴
  33. 侧轴
  34. 与主轴垂直方向的称为侧轴
  35. */
  36. flex-direction: row;
  37. /* flex-direction: row-reverse; */
  38. /* flex-direction: column; */
  39. /* flex-direction: column-reverse; */
  40. }
  41. li{
  42. width: 200px;
  43. height: 100px;
  44. background-color: #bfa;
  45. font-size: 50px;
  46. text-align: center;
  47. line-height: 100px;
  48. /*
  49. 弹性元素的属性:
  50. flex-grow 指定弹性元素的伸展的系数(默认值是0)
  51. -当父元素有多余的空间时,子元素如何伸展
  52. -父元素的剩余空间,会按照比例进行分配
  53. flex-shrink 指定弹性元素的收缩系数(默认值是1)
  54. -当父元素中的空间不足以容纳所有的子元素时,如何对子元素进行收缩
  55. */
  56. /* flex-grow: 1; */
  57. /* flex-shrink: 1; */
  58. flex-shrink: 0;
  59. }
  60. li:nth-child(1){
  61. flex-grow: 0;
  62. flex-shrink: 1;
  63. }
  64. li:nth-last-child(2){
  65. background-color: pink;
  66. /* flex-grow: 2; */
  67. flex-shrink: 2;
  68. }
  69. li:nth-child(3){
  70. background-color: orange;
  71. /* flex-grow: 3; */
  72. flex-shrink: 3;
  73. }
  74. </style>
  75. </head>
  76. <body>
  77. <!--
  78. flex(弹性盒、伸缩盒)
  79. -是css中的又一种布局手段,它主要用来代替浮动来完成页面的布局
  80. -flex可以使元素具有弹性,让元素可以跟随页面的大小的改变而改变
  81. -弹性容器
  82. -要使用弹性盒,必须先将一个元素设置为弹性容器
  83. -通过display来设置弹性容器
  84. display:flex 设置为块级弹性容器(常用)
  85. display:inline-flex 设置为行内的弹性容器
  86. -弹性元素
  87. -弹性容器的子元素是弹性元素(弹性项)
  88. -弹性元素可以同时是弹性容器
  89. -->
  90. <ul>
  91. <li>1</li>
  92. <li>2</li>
  93. <li>3</li>
  94. </ul>
  95. </body>
  96. </html>