CSS3 Flex Container

父元素(容器)

通过将 display 属性设置为 flex,flex 容器将可伸缩:

1

2

3

实例
  1. <!DOCTYPE html>
  2. <html>
  3. <head>
  4. <style>
  5. .flex-container {
  6. display: flex;
  7. background-color: DodgerBlue;
  8. }
  9. .flex-container > div {
  10. background-color: #f1f1f1;
  11. margin: 10px;
  12. padding: 20px;
  13. font-size: 30px;
  14. }
  15. </style>
  16. </head>
  17. <body>
  18. <div class="flex-container">
  19. <div>1</div>
  20. <div>2</div>
  21. <div>3</div>
  22. </div>
  23. <p>弹性布局中必须有一个 <em>display</em> 属性设置为 <em>flex</em> 的父元素。</p>
  24. <p>弹性容器的直接子元素会自动成为弹性项目。</p>
  25. </body>
  26. </html>

以下是 flex 容器属性:


flex-direction 属性

flex-direction 属性定义容器要在哪个方向上堆叠 flex 项目。

1

2

3

column 值设置垂直堆叠 flex 项目(从上到下):

  1. <!DOCTYPE html>
  2. <html>
  3. <head>
  4. <style>
  5. .flex-container {
  6. display: flex;
  7. flex-direction: column;
  8. background-color: DodgerBlue;
  9. }
  10. .flex-container > div {
  11. background-color: #f1f1f1;
  12. width: 100px;
  13. margin: 10px;
  14. text-align: center;
  15. line-height: 75px;
  16. font-size: 30px;
  17. }
  18. </style>
  19. </head>
  20. <body>
  21. <h2>flex-direction 属性</h2>
  22. <p>"flex-direction: column;" 垂直堆叠弹性项目(从上到下):</p>
  23. <div class="flex-container">
  24. <div>1</div>
  25. <div>2</div>
  26. <div>3</div>
  27. </div>
  28. </body>
  29. </html>

column-reverse 值垂直堆叠 flex 项目(但从下到上):

  1. <!DOCTYPE html>
  2. <html>
  3. <head>
  4. <style>
  5. .flex-container {
  6. display: flex;
  7. flex-direction: column-reverse;
  8. background-color: DodgerBlue;
  9. }
  10. .flex-container > div {
  11. background-color: #f1f1f1;
  12. width: 100px;
  13. margin: 10px;
  14. text-align: center;
  15. line-height: 75px;
  16. font-size: 30px;
  17. }
  18. </style>
  19. </head>
  20. <body>
  21. <h2>flex-direction 属性</h2>
  22. <p>"flex-direction: column-reverse;" 垂直堆叠弹性项目(但是从下到上):</p>
  23. <div class="flex-container">
  24. <div>1</div>
  25. <div>2</div>
  26. <div>3</div>
  27. </div>
  28. </body>
  29. </html>

row 值水平堆叠 flex 项目(从左到右):

  1. <!DOCTYPE html>
  2. <html>
  3. <head>
  4. <style>
  5. .flex-container {
  6. display: flex;
  7. flex-direction: row;
  8. background-color: DodgerBlue;
  9. }
  10. .flex-container > div {
  11. background-color: #f1f1f1;
  12. width: 100px;
  13. margin: 10px;
  14. text-align: center;
  15. line-height: 75px;
  16. font-size: 30px;
  17. }
  18. </style>
  19. </head>
  20. <body>
  21. <h2>flex-direction 属性</h2>
  22. <p>"flex-direction: row;" 水平地并排弹性项目(从左到右):</p>
  23. <div class="flex-container">
  24. <div>1</div>
  25. <div>2</div>
  26. <div>3</div>
  27. </div>
  28. </body>
  29. </html>

row-reverse 值水平堆叠 flex 项目(但从右到左):

  1. <!DOCTYPE html>
  2. <html>
  3. <head>
  4. <style>
  5. .flex-container {
  6. display: flex;
  7. flex-direction: row-reverse;
  8. background-color: DodgerBlue;
  9. }
  10. .flex-container > div {
  11. background-color: #f1f1f1;
  12. width: 100px;
  13. margin: 10px;
  14. text-align: center;
  15. line-height: 75px;
  16. font-size: 30px;
  17. }
  18. </style>
  19. </head>
  20. <body>
  21. <h2>flex-direction 属性</h2>
  22. <p>"flex-direction: row-reverse;" 水平地并排弹性项目(但是从右向左):</p>
  23. <div class="flex-container">
  24. <div>1</div>
  25. <div>2</div>
  26. <div>3</div>
  27. </div>
  28. </body>
  29. </html>

flex-wrap 属性

flex-wrap 属性规定是否应该对 flex 项目换行。

下面的例子包含 12 个 flex 项目,以便更好地演示 flex-wrap 属性。

1

2

3

4

5

6

7

8

9

10

11

12

wrap 值规定 flex 项目将在必要时进行换行:

  1. <!DOCTYPE html>
  2. <html>
  3. <head>
  4. <style>
  5. .flex-container {
  6. display: flex;
  7. flex-wrap: wrap;
  8. background-color: DodgerBlue;
  9. }
  10. .flex-container > div {
  11. background-color: #f1f1f1;
  12. width: 100px;
  13. margin: 10px;
  14. text-align: center;
  15. line-height: 75px;
  16. font-size: 30px;
  17. }
  18. </style>
  19. </head>
  20. <body>
  21. <h2>flex-wrap 属性</h2>
  22. <p>"flex-wrap: wrap;" 规定 flex 项目将在必要时进行换行:</p>
  23. <div class="flex-container">
  24. <div>1</div>
  25. <div>2</div>
  26. <div>3</div>
  27. <div>4</div>
  28. <div>5</div>
  29. <div>6</div>
  30. <div>7</div>
  31. <div>8</div>
  32. <div>9</div>
  33. <div>10</div>
  34. <div>11</div>
  35. <div>12</div>
  36. </div>
  37. <p>尝试改变浏览器的大小。</p>
  38. </body>
  39. </html>

nowrap 值规定将不对 flex 项目换行(默认):

  1. <!DOCTYPE html>
  2. <html>
  3. <head>
  4. <style>
  5. .flex-container {
  6. display: flex;
  7. flex-wrap: nowrap;
  8. background-color: DodgerBlue;
  9. }
  10. .flex-container>div {
  11. background-color: #f1f1f1;
  12. width: 100px;
  13. margin: 10px;
  14. text-align: center;
  15. line-height: 75px;
  16. font-size: 30px;
  17. }
  18. </style>
  19. </head>
  20. <body>
  21. <h2>flex-wrap 属性</h2>
  22. <p>"flex-wrap: nowrap;" 规定将不对 flex 项目换行(默认):</p>
  23. <div class="flex-container">
  24. <div>1</div>
  25. <div>2</div>
  26. <div>3</div>
  27. <div>4</div>
  28. <div>5</div>
  29. <div>6</div>
  30. <div>7</div>
  31. <div>8</div>
  32. <div>9</div>
  33. <div>10</div>
  34. <div>11</div>
  35. <div>12</div>
  36. </div>
  37. <p>请尝试调整浏览器窗口的尺寸。</p>
  38. </body>
  39. </html>

wrap-reverse 值规定如有必要,弹性项目将以相反的顺序换行:

  1. <!DOCTYPE html>
  2. <html>
  3. <head>
  4. <style>
  5. .flex-container {
  6. display: flex;
  7. flex-wrap: wrap-reverse;
  8. background-color: DodgerBlue;
  9. }
  10. .flex-container > div {
  11. background-color: #f1f1f1;
  12. width: 100px;
  13. margin: 10px;
  14. text-align: center;
  15. line-height: 75px;
  16. font-size: 30px;
  17. }
  18. </style>
  19. </head>
  20. <body>
  21. <h2>flex-wrap 属性</h2>
  22. <p>"flex-wrap: wrap-reverse;" 规定弹性项目将以相反的顺序换行(如有必要):</p>
  23. <div class="flex-container">
  24. <div>1</div>
  25. <div>2</div>
  26. <div>3</div>
  27. <div>4</div>
  28. <div>5</div>
  29. <div>6</div>
  30. <div>7</div>
  31. <div>8</div>
  32. <div>9</div>
  33. <div>10</div>
  34. <div>11</div>
  35. <div>12</div>
  36. </div>
  37. <p>尝试改变浏览器的大小。</p>
  38. </body>
  39. </html>

flex-flow 属性

flex-flow 属性是用于同时设置 flex-direction 和 flex-wrap 属性的简写属性:

  1. <!DOCTYPE html>
  2. <html>
  3. <head>
  4. <style>
  5. .flex-container {
  6. display: flex;
  7. flex-flow: row wrap;
  8. background-color: DodgerBlue;
  9. }
  10. .flex-container > div {
  11. background-color: #f1f1f1;
  12. width: 100px;
  13. margin: 10px;
  14. text-align: center;
  15. line-height: 75px;
  16. font-size: 30px;
  17. }
  18. </style>
  19. </head>
  20. <body>
  21. <h2>flex-flow 属性</h2>
  22. <p>flex-flow 属性是 flex-direction 和 flex-wrap 属性的简写属性。</p>
  23. <div class="flex-container">
  24. <div>1</div>
  25. <div>2</div>
  26. <div>3</div>
  27. <div>4</div>
  28. <div>5</div>
  29. <div>6</div>
  30. <div>7</div>
  31. <div>8</div>
  32. <div>9</div>
  33. <div>10</div>
  34. <div>11</div>
  35. <div>12</div>
  36. </div>
  37. <p>请尝试调整浏览器窗口的大小。</p>
  38. </body>
  39. </html>

justify-content 属性

justify-content 属性用于对齐 flex 项目:

1

2

3

值将 flex 项目在容器的中心对齐:

  1. <!DOCTYPE html>
  2. <html>
  3. <head>
  4. <style>
  5. .flex-container {
  6. display: flex;
  7. justify-content: center;
  8. background-color: DodgerBlue;
  9. }
  10. .flex-container > div {
  11. background-color: #f1f1f1;
  12. width: 100px;
  13. margin: 10px;
  14. text-align: center;
  15. line-height: 75px;
  16. font-size: 30px;
  17. }
  18. </style>
  19. </head>
  20. <body>
  21. <h2>justify-content 属性</h2>
  22. <p>"justify-content: center;" 在容器中央对齐弹性项目:</p>
  23. <div class="flex-container">
  24. <div>1</div>
  25. <div>2</div>
  26. <div>3</div>
  27. </div>
  28. </body>
  29. </html>

flex-start 值将 flex 项目在容器的开头对齐(默认):

  1. <!DOCTYPE html>
  2. <html>
  3. <head>
  4. <style>
  5. .flex-container {
  6. display: flex;
  7. justify-content: flex-start;
  8. background-color: DodgerBlue;
  9. }
  10. .flex-container > div {
  11. background-color: #f1f1f1;
  12. width: 100px;
  13. margin: 10px;
  14. text-align: center;
  15. line-height: 75px;
  16. font-size: 30px;
  17. }
  18. </style>
  19. </head>
  20. <body>
  21. <h2>justify-content 属性</h2>
  22. <p>"justify-content: flex-start;" 在容器开头对齐弹性项目(默认):</p>
  23. <div class="flex-container">
  24. <div>1</div>
  25. <div>2</div>
  26. <div>3</div>
  27. </div>
  28. </body>
  29. </html>

flex-end 值将 flex 项目在容器的末端对齐:

  1. <!DOCTYPE html>
  2. <html>
  3. <head>
  4. <style>
  5. .flex-container {
  6. display: flex;
  7. justify-content: flex-end;
  8. background-color: DodgerBlue;
  9. }
  10. .flex-container > div {
  11. background-color: #f1f1f1;
  12. width: 100px;
  13. margin: 10px;
  14. text-align: center;
  15. line-height: 75px;
  16. font-size: 30px;
  17. }
  18. </style>
  19. </head>
  20. <body>
  21. <h2>justify-content 属性</h2>
  22. <p>"justify-content: flex-end;" 在容器末端对齐弹性项目:</p>
  23. <div class="flex-container">
  24. <div>1</div>
  25. <div>2</div>
  26. <div>3</div>
  27. </div>
  28. </body>
  29. </html>

space-around 值显示行之前、之间和之后带有空格的 flex 项目:

  1. <!DOCTYPE html>
  2. <html>
  3. <head>
  4. <style>
  5. .flex-container {
  6. display: flex;
  7. justify-content: space-around;
  8. background-color: DodgerBlue;
  9. }
  10. .flex-container > div {
  11. background-color: #f1f1f1;
  12. width: 100px;
  13. margin: 10px;
  14. text-align: center;
  15. line-height: 75px;
  16. font-size: 30px;
  17. }
  18. </style>
  19. </head>
  20. <body>
  21. <h2>justify-content 属性</h2>
  22. <p>"justify-content: space-around;" 显示行之前、之间和之后带有空格的 flex 项目:</p>
  23. <div class="flex-container">
  24. <div>1</div>
  25. <div>2</div>
  26. <div>3</div>
  27. </div>
  28. </body>
  29. </html>

space-between 值显示行之间有空格的 flex 项目:

  1. <!DOCTYPE html>
  2. <html>
  3. <head>
  4. <style>
  5. .flex-container {
  6. display: flex;
  7. justify-content: space-between;
  8. background-color: DodgerBlue;
  9. }
  10. .flex-container > div {
  11. background-color: #f1f1f1;
  12. width: 100px;
  13. margin: 10px;
  14. text-align: center;
  15. line-height: 75px;
  16. font-size: 30px;
  17. }
  18. </style>
  19. </head>
  20. <body>
  21. <h2>justify-content 属性</h2>
  22. <p>"justify-content: space-between;" 显示行之间有空格的 flex 项目:</p>
  23. <div class="flex-container">
  24. <div>1</div>
  25. <div>2</div>
  26. <div>3</div>
  27. </div>
  28. </body>
  29. </html>

align-items 属性

align-items 属性用于垂直对齐 flex 项目。

1

2

3

在这些例子中,我们使用 200 像素高的容器,以便更好地演示 align-items 属性。

center 值将 flex 项目在容器中间对齐:

  1. <!DOCTYPE html>
  2. <html>
  3. <head>
  4. <style>
  5. .flex-container {
  6. display: flex;
  7. height: 200px;
  8. align-items: center;
  9. background-color: DodgerBlue;
  10. }
  11. .flex-container > div {
  12. background-color: #f1f1f1;
  13. width: 100px;
  14. margin: 10px;
  15. text-align: center;
  16. line-height: 75px;
  17. font-size: 30px;
  18. }
  19. </style>
  20. </head>
  21. <body>
  22. <h2>align-items 属性</h2>
  23. <p>"align-items: center;" 将 flex 项目在容器中间对齐:</p>
  24. <div class="flex-container">
  25. <div>1</div>
  26. <div>2</div>
  27. <div>3</div>
  28. </div>
  29. </body>
  30. </html>

flex-start 值将 flex 项目在容器顶部对齐:

  1. <!DOCTYPE html>
  2. <html>
  3. <head>
  4. <style>
  5. .flex-container {
  6. display: flex;
  7. height: 200px;
  8. align-items: flex-start;
  9. background-color: DodgerBlue;
  10. }
  11. .flex-container > div {
  12. background-color: #f1f1f1;
  13. width: 100px;
  14. margin: 10px;
  15. text-align: center;
  16. line-height: 75px;
  17. font-size: 30px;
  18. }
  19. </style>
  20. </head>
  21. <body>
  22. <h2>align-items 属性</h2>
  23. <p>"align-items: flex-start;" 将 flex 项目在容器顶部对齐:</p>
  24. <div class="flex-container">
  25. <div>1</div>
  26. <div>2</div>
  27. <div>3</div>
  28. </div>
  29. </body>
  30. </html>

flex-end 值将弹性项目在容器底部对齐:

  1. <!DOCTYPE html>
  2. <html>
  3. <head>
  4. <style>
  5. .flex-container {
  6. display: flex;
  7. height: 200px;
  8. align-items: flex-end;
  9. background-color: DodgerBlue;
  10. }
  11. .flex-container > div {
  12. background-color: #f1f1f1;
  13. width: 100px;
  14. margin: 10px;
  15. text-align: center;
  16. line-height: 75px;
  17. font-size: 30px;
  18. }
  19. </style>
  20. </head>
  21. <body>
  22. <h2>align-items 属性</h2>
  23. <p>"align-items: flex-end;" 将弹性项目在容器底部对齐:</p>
  24. <div class="flex-container">
  25. <div>1</div>
  26. <div>2</div>
  27. <div>3</div>
  28. </div>
  29. </body>
  30. </html>

stretch 值拉伸 flex 项目以填充容器(默认):

  1. <!DOCTYPE html>
  2. <html>
  3. <head>
  4. <style>
  5. .flex-container {
  6. display: flex;
  7. height: 200px;
  8. align-items: stretch;
  9. background-color: DodgerBlue;
  10. }
  11. .flex-container > div {
  12. background-color: #f1f1f1;
  13. width: 100px;
  14. margin: 10px;
  15. text-align: center;
  16. line-height: 75px;
  17. font-size: 30px;
  18. }
  19. </style>
  20. </head>
  21. <body>
  22. <h2>align-items 属性</h2>
  23. <p>"align-items: stretch;" 拉伸 flex 项目以填充容器(默认):</p>
  24. <div class="flex-container">
  25. <div>1</div>
  26. <div>2</div>
  27. <div>3</div>
  28. </div>
  29. </body>
  30. </html>

baseline 值使 flex 项目基线对齐:

  1. <!DOCTYPE html>
  2. <html>
  3. <head>
  4. <style>
  5. .flex-container {
  6. display: flex;
  7. height: 200px;
  8. align-items: baseline;
  9. background-color: DodgerBlue;
  10. }
  11. .flex-container > div {
  12. background-color: #f1f1f1;
  13. width: 100px;
  14. margin: 10px;
  15. text-align: center;
  16. line-height: 75px;
  17. font-size: 30px;
  18. }
  19. </style>
  20. </head>
  21. <body>
  22. <h2>align-items 属性</h2>
  23. <p>"align-items: baseline;" 使 flex 项目基线对齐:</p>
  24. <div class="flex-container">
  25. <div><h2>1</h2></div>
  26. <div><h6>2</h6></div>
  27. <div><h3>3</h3></div>
  28. <div><small>4</small></div>
  29. </div>
  30. </body>
  31. </html>

注意:该例使用不同的 font-size 来演示项目已按文本基线对齐:


1

2

3

4

align-content 属性

align-content 属性用于对齐弹性线。

1

2

3

4

5

6

7

8

9

10

11

12

在这些例子中,我们使用 600 像素高的容器,并将 flex-wrap 属性设置为 wrap,以便更好地演示 align-content 属性。

space-between 值显示的弹性线之间有相等的间距:

  1. <!DOCTYPE html>
  2. <html>
  3. <head>
  4. <style>
  5. .flex-container {
  6. display: flex;
  7. height: 600px;
  8. flex-wrap: wrap;
  9. align-content: space-between;
  10. background-color: DodgerBlue;
  11. }
  12. .flex-container > div {
  13. background-color: #f1f1f1;
  14. width: 100px;
  15. margin: 10px;
  16. text-align: center;
  17. line-height: 75px;
  18. font-size: 30px;
  19. }
  20. </style>
  21. </head>
  22. <body>
  23. <h2>align-content 属性</h2>
  24. <p>"align-content: space-between;" 显示的弹性线之间有相等的间距:</p>
  25. <div class="flex-container">
  26. <div>1</div>
  27. <div>2</div>
  28. <div>3</div>
  29. <div>4</div>
  30. <div>5</div>
  31. <div>6</div>
  32. <div>7</div>
  33. <div>8</div>
  34. <div>9</div>
  35. <div>10</div>
  36. <div>11</div>
  37. <div>12</div>
  38. </div>
  39. </body>
  40. </html>

space-around 值显示弹性线在其之前、之间和之后带有空格:

  1. <!DOCTYPE html>
  2. <html>
  3. <head>
  4. <style>
  5. .flex-container {
  6. display: flex;
  7. height: 600px;
  8. flex-wrap: wrap;
  9. align-content: space-around;
  10. background-color: DodgerBlue;
  11. }
  12. .flex-container > div {
  13. background-color: #f1f1f1;
  14. width: 100px;
  15. margin: 10px;
  16. text-align: center;
  17. line-height: 75px;
  18. font-size: 30px;
  19. }
  20. </style>
  21. </head>
  22. <body>
  23. <h2>align-content 属性</h2>
  24. <p>"align-content: space-around;" 显示弹性线在其之前、之间和之后带有空格:</p>
  25. <div class="flex-container">
  26. <div>1</div>
  27. <div>2</div>
  28. <div>3</div>
  29. <div>4</div>
  30. <div>5</div>
  31. <div>6</div>
  32. <div>7</div>
  33. <div>8</div>
  34. <div>9</div>
  35. <div>10</div>
  36. <div>11</div>
  37. <div>12</div>
  38. </div>
  39. </body>
  40. </html>

stretch 值拉伸弹性线以占据剩余空间(默认):

  1. <!DOCTYPE html>
  2. <html>
  3. <head>
  4. <style>
  5. .flex-container {
  6. display: flex;
  7. height: 600px;
  8. flex-wrap: wrap;
  9. align-content: stretch;
  10. background-color: DodgerBlue;
  11. }
  12. .flex-container > div {
  13. background-color: #f1f1f1;
  14. width: 100px;
  15. margin: 10px;
  16. text-align: center;
  17. line-height: 75px;
  18. font-size: 30px;
  19. }
  20. </style>
  21. </head>
  22. <body>
  23. <h2>align-content 属性</h2>
  24. <p>"align-content: stretch;" 拉伸弹性线以占据剩余空间(默认):</p>
  25. <div class="flex-container">
  26. <div>1</div>
  27. <div>2</div>
  28. <div>3</div>
  29. <div>4</div>
  30. <div>5</div>
  31. <div>6</div>
  32. <div>7</div>
  33. <div>8</div>
  34. <div>9</div>
  35. <div>10</div>
  36. <div>11</div>
  37. <div>12</div>
  38. </div>
  39. </body>
  40. </html>

center 值在容器中间显示弹性线:

  1. <!DOCTYPE html>
  2. <html>
  3. <head>
  4. <style>
  5. .flex-container {
  6. display: flex;
  7. height: 600px;
  8. flex-wrap: wrap;
  9. align-content: center;
  10. background-color: DodgerBlue;
  11. }
  12. .flex-container > div {
  13. background-color: #f1f1f1;
  14. width: 100px;
  15. margin: 10px;
  16. text-align: center;
  17. line-height: 75px;
  18. font-size: 30px;
  19. }
  20. </style>
  21. </head>
  22. <body>
  23. <h2>align-content 属性</h2>
  24. <p>"align-content: center;" 在容器中间显示弹性线:</p>
  25. <div class="flex-container">
  26. <div>1</div>
  27. <div>2</div>
  28. <div>3</div>
  29. <div>4</div>
  30. <div>5</div>
  31. <div>6</div>
  32. <div>7</div>
  33. <div>8</div>
  34. <div>9</div>
  35. <div>10</div>
  36. <div>11</div>
  37. <div>12</div>
  38. </div>
  39. </body>
  40. </html>

flex-start 值在容器开头显示弹性线:

  1. <!DOCTYPE html>
  2. <html>
  3. <head>
  4. <style>
  5. .flex-container {
  6. display: flex;
  7. height: 600px;
  8. flex-wrap: wrap;
  9. align-content: flex-start;
  10. background-color: DodgerBlue;
  11. }
  12. .flex-container > div {
  13. background-color: #f1f1f1;
  14. width: 100px;
  15. margin: 10px;
  16. text-align: center;
  17. line-height: 75px;
  18. font-size: 30px;
  19. }
  20. </style>
  21. </head>
  22. <body>
  23. <h2>align-content 属性</h2>
  24. <p>"align-content: flex-start;" 在容器开头显示弹性线:</p>
  25. <div class="flex-container">
  26. <div>1</div>
  27. <div>2</div>
  28. <div>3</div>
  29. <div>4</div>
  30. <div>5</div>
  31. <div>6</div>
  32. <div>7</div>
  33. <div>8</div>
  34. <div>9</div>
  35. <div>10</div>
  36. <div>11</div>
  37. <div>12</div>
  38. </div>
  39. </body>
  40. </html>

flex-end 值在容器的末尾显示弹性线:

  1. <!DOCTYPE html>
  2. <html>
  3. <head>
  4. <style>
  5. .flex-container {
  6. display: flex;
  7. height: 600px;
  8. flex-wrap: wrap;
  9. align-content: flex-end;
  10. background-color: DodgerBlue;
  11. }
  12. .flex-container > div {
  13. background-color: #f1f1f1;
  14. width: 100px;
  15. margin: 10px;
  16. text-align: center;
  17. line-height: 75px;
  18. font-size: 30px;
  19. }
  20. </style>
  21. </head>
  22. <body>
  23. <h2>align-content 属性</h2>
  24. <p>"align-content: flex-end;" 在容器的末尾显示弹性线:</p>
  25. <div class="flex-container">
  26. <div>1</div>
  27. <div>2</div>
  28. <div>3</div>
  29. <div>4</div>
  30. <div>5</div>
  31. <div>6</div>
  32. <div>7</div>
  33. <div>8</div>
  34. <div>9</div>
  35. <div>10</div>
  36. <div>11</div>
  37. <div>12</div>
  38. </div>
  39. </body>
  40. </html>

完美的居中

在下面的例子中,我们会解决一个非常常见的样式问题:完美居中。

解决方案:将 justify-contentalign-items 属性设置为居中,然后 flex 项目将完美居中:

代码如下:

  1. <!DOCTYPE html>
  2. <html>
  3. <head>
  4. <style>
  5. .flex-container {
  6. display: flex;
  7. justify-content: center;
  8. align-items: center;
  9. height: 300px;
  10. background-color: DodgerBlue;
  11. }
  12. .flex-container>div {
  13. background-color: #f1f1f1;
  14. color: white;
  15. width: 100px;
  16. height: 100px;
  17. }
  18. </style>
  19. </head>
  20. <body>
  21. <h2>完美的居中</h2>
  22. <p>如果容器的 justify-content 和 align-items 属性都设置为 <em>center</em>,则项目会在两个轴的方向同时居中。</p>
  23. <div class="flex-container">
  24. <div></div>
  25. </div>
  26. </body>
  27. </html>

分类导航