8_flex.html 3.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105
  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>Document</title>
  7. <style>
  8. *{
  9. margin: 0;
  10. padding: 0;
  11. }
  12. li{
  13. list-style: none;
  14. }
  15. /* 弹性布局 flex */
  16. .box{
  17. border:3px dashed black;
  18. }
  19. /* flex 布局 如果要控制多个元素实现弹性布局,需要给父元素使用display:flex; */
  20. /* flex 默认排列方向为水平方向 */
  21. .box ul{
  22. width: 100%;
  23. /* height: 500px; */
  24. display: flex;
  25. /* flex 布局分为主轴和交叉轴 主轴默认方向为水平方向 交叉轴默认方向为垂直方向 */
  26. /* justify-content 可以实现flex元素 在主轴方向上的对齐方式 center 居中对齐 flex-start 左对齐 flex-end 右对齐 space-between 两端对齐 space-around 等间距对齐 */
  27. /* justify-content: space-around; */
  28. /* align-items 可以实现flex元素 在交叉轴方向上的对齐方式 center 居中对齐 flex-start 顶部对齐 flex-end 底部对齐 */
  29. /* align-items: center; */
  30. /* 修改主轴方向 flex-direction 可以实现flex元素 在主轴方向上的对齐方式 row 水平方向 column 垂直方向 */
  31. /* flex-direction: column; */
  32. /* 默认情况下 如果flex元素一行装不下,会压缩元素使其适应父元素宽度 */
  33. /* 如果不希望压缩元素,可以使用flex-wrap: wrap; 来让元素换行 */
  34. /* flex-wrap: wrap; */
  35. /* align-content 可以实现多条轴的对齐方式 center 居中对齐 flex-start 顶部对齐 flex-end 底部对齐 space-between 两端对齐 space-around 等间距对齐 */
  36. /* align-content: space-between; */
  37. }
  38. .box li{
  39. width: 100px;
  40. height: 100px;
  41. background-color: red;
  42. margin: 10px;
  43. color: white;
  44. font-size: 30px;
  45. font-weight: bold;
  46. text-align: center;
  47. line-height: 100px;
  48. }
  49. /* flex 对于单个元素的控制 */
  50. /* 控制显示顺序 */
  51. li:nth-child(3){
  52. /* order 可以实现flex元素 在flex布局中的显示顺序 数值越大排列越靠后 */
  53. /* order: -1; */
  54. /* align-self 可以实现flex元素 在交叉轴方向上的对齐方式 flex-start 顶部对齐 flex-end 底部对齐 center 居中对齐 */
  55. /* align-self: center; */
  56. /* flex-shrink 可以实现flex元素 在主轴方向上的压缩比例 默认值为1 如果设置为0,元素不会压缩 */
  57. /* flex-shrink: 0; */
  58. }
  59. .box2 li{
  60. /* flex-grow 可以实现flex元素 在主轴方向上的扩展比例 默认值为0 如果设置为1,元素会扩展以适应父元素宽度 将空白区域等分给各个元素 */
  61. flex-grow: 1;
  62. }
  63. </style>
  64. </head>
  65. <body>
  66. <div class="box">
  67. <ul>
  68. <li>1</li>
  69. <li>2</li>
  70. <li>3</li>
  71. <li>4</li>
  72. <li>5</li>
  73. <li>6</li>
  74. <li>7</li>
  75. <li>8</li>
  76. <li>9</li>
  77. <li>10</li>
  78. <li>11</li>
  79. <li>12</li>
  80. <li>13</li>
  81. <li>14</li>
  82. <li>15</li>
  83. <!-- <li>16</li>
  84. <li>17</li>
  85. <li>18</li>
  86. <li>19</li>
  87. <li>20</li> -->
  88. </ul>
  89. </div>
  90. <div class="box box2">
  91. <ul>
  92. <li>1</li>
  93. <li>2</li>
  94. <li>3</li>
  95. </ul>
  96. </div>
  97. </body>
  98. </html>