博客列表 >flex常用的6个属性与实例演示

flex常用的6个属性与实例演示

早晨
早晨原创
2022年07月13日 17:28:512005浏览

flex常用的6个属性分别是:

flex-direction、flex-wrap、flex-flow、align-items、align-content、justify-content

一.flex-direction属性:

决定主轴的的方向,即容器中项目排列的方向,一般默认的方向是横排列。
flex-direction有四个属性,它的属性值如下:
1、row(默认值):主轴水平方向,起点在左端,
2、row-reverse:起点在右端,
3、column:主轴为垂直方向,起点在上沿,
4、column-reverse:起点在下沿。

代码:

  1. <!DOCTYPE html>
  2. <html lang="zh-CN">
  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>flex弹性盒子</title>
  8. </head>
  9. <style>
  10. *{
  11. margin: 0;
  12. padding: 0;
  13. box-sizing: border-box;
  14. }
  15. body{
  16. background-color: #ccc;
  17. }
  18. .mein{
  19. height: 20em;
  20. display: flex;
  21. border: 2px solid yellow;
  22. /* 主轴水平方向,起点在左端 */
  23. flex-direction: row;
  24. /* 起点在右端 */
  25. /* flex-direction: row-reverse; */
  26. /* 主轴为垂直方向,起点在上沿 */
  27. /* flex-direction: column; */
  28. /* 起点在下沿 */
  29. /* flex-direction: column-reverse; */
  30. }
  31. .nav{
  32. width: 10em;
  33. padding: 1px;
  34. background-color: lightgreen;
  35. border: 1px solid lightgray;
  36. }
  37. </style>
  38. <body>
  39. <div class="mein">
  40. <div class="nav">flex1</div>
  41. <div class="nav">flex2</div>
  42. <div class="nav">flex3</div>
  43. </div>
  44. </body>
  45. </html>

运行效果:

二.flex-wrap属性:

设置子元素的换行方式,它的属性值如下:
1、nowrap(默认值):不换行 一直往后排(当父布局空间不足时,也不会换行此时可能就会有内容被遮挡看不见了)
2、wrap:换行,子元素往后排,当空间不足时会另起一行从新排列
3、wrap-reverse:换行,跟wrap相似 只是行会从下往上开始

代码:

  1. <!DOCTYPE html>
  2. <html lang="zh-CN">
  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>flex弹性盒子</title>
  8. </head>
  9. <style>
  10. *{
  11. margin: 0;
  12. padding: 0;
  13. box-sizing: border-box;
  14. }
  15. body{
  16. background-color: #ccc;
  17. }
  18. .mein{
  19. height: 20em;
  20. display: flex;
  21. border: 2px solid yellow;
  22. /* 默认值 不换行一直往后排 */
  23. /* flex-wrap: nowrap; */
  24. /* 换行,子元素往后排,当空间不足时会另起一行 */
  25. /* flex-wrap: wrap; */
  26. /* 换行,跟wrap相似,中是行会从下往上开始 */
  27. flex-wrap: wrap-reverse;
  28. }
  29. .nav{
  30. width: 15em;
  31. padding: 1px;
  32. background-color: lightgreen;
  33. border: 1px solid lightgray;
  34. }
  35. </style>
  36. <body>
  37. <div class="mein">
  38. <div class="nav">flex1</div>
  39. <div class="nav">flex2</div>
  40. <div class="nav">flex3</div>
  41. </div>
  42. </body>
  43. </html>

运行效果:

三.flex-flow属性:

它是flex-direction属性和flex-wrap的简写。默认值(row nowrap)为横向排列不换行。

代码:

  1. <!DOCTYPE html>
  2. <html lang="zh-CN">
  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>flex弹性盒子</title>
  8. </head>
  9. <style>
  10. *{
  11. margin: 0;
  12. padding: 0;
  13. box-sizing: border-box;
  14. }
  15. body{
  16. background-color: #ccc;
  17. }
  18. .mein{
  19. height: 20em;
  20. display: flex;
  21. border: 2px solid yellow;
  22. /* 默认值(row nowrap)为横向排列不换行 */
  23. flex-flow: row;
  24. }
  25. .nav{
  26. width: 15em;
  27. padding: 1px;
  28. background-color: lightgreen;
  29. border: 1px solid lightgray;
  30. }
  31. </style>
  32. <body>
  33. <div class="mein">
  34. <div class="nav">flex1</div>
  35. <div class="nav">flex2</div>
  36. <div class="nav">flex3</div>
  37. </div>
  38. </body>
  39. </html>

运行效果:

四.justify-content属性:

表示子元素在主轴方向上的对齐方式,它的属性值如下:
1、flex-start(默认值):左对齐
2、flex-end:右对齐
3、center:居中
4、space-between: 两端对齐
5、space-around:两端对齐但是项目边上的元素和容器之间有空隙

代码:

  1. <!DOCTYPE html>
  2. <html lang="zh-CN">
  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>flex弹性盒子</title>
  8. </head>
  9. <style>
  10. *{
  11. margin: 0;
  12. padding: 0;
  13. box-sizing: border-box;
  14. }
  15. body{
  16. background-color: #ccc;
  17. }
  18. .mein{
  19. height: 20em;
  20. display: flex;
  21. border: 2px solid yellow;
  22. /* 左对齐 */
  23. /* justify-content: flex-start; */
  24. /* 右对齐 */
  25. /* justify-content: flex-end; */
  26. /* 居中对齐 */
  27. /* justify-content: center; */
  28. /* 两端对齐 */
  29. /* justify-content: space-between; */
  30. /* 两端对齐但是项目边上的元素和容器之间有空隙 */
  31. justify-content: space-around;
  32. }
  33. .nav{
  34. width: 10em;
  35. padding: 1px;
  36. background-color: lightgreen;
  37. border: 1px solid lightgray;
  38. }
  39. </style>
  40. <body>
  41. <div class="mein">
  42. <div class="nav">flex1</div>
  43. <div class="nav">flex2</div>
  44. <div class="nav">flex3</div>
  45. </div>
  46. </body>
  47. </html>

运行效果:

五.align-items属性:

表示子元素在交叉轴上的排列方式,它的属性值如下:
1、flex-start:交叉轴的起点对齐
2、flex-end:终点对齐
3、center:中点对齐
4、baseline:项目的第一行文字基线对齐
5、stretch(默认值):当项目未设置高度的时候,占满这个容器的高度

代码:

  1. <!DOCTYPE html>
  2. <html lang="zh-CN">
  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>flex弹性盒子</title>
  8. </head>
  9. <style>
  10. *{
  11. margin: 0;
  12. padding: 0;
  13. box-sizing: border-box;
  14. }
  15. body{
  16. background-color: #ccc;
  17. }
  18. .mein{
  19. height: 20em;
  20. display: flex;
  21. border: 2px solid yellow;
  22. /* 交叉轴的起点对齐 */
  23. /* align-items: flex-start; */
  24. /* 终点对齐 */
  25. /* align-items: flex-end; */
  26. /* 中点对齐 */
  27. align-items: center;
  28. /* 项目的第一行文字基线对齐 */
  29. /* align-items: baseline; */
  30. /* 项目未设置高度的时候,占满这个容器的高度 */
  31. /* align-items: stretch; */
  32. }
  33. .nav{
  34. width: 10em;
  35. padding: 1px;
  36. background-color: lightgreen;
  37. border: 1px solid lightgray;
  38. }
  39. </style>
  40. <body>
  41. <div class="mein">
  42. <div class="nav">flex1</div>
  43. <div class="nav">flex2</div>
  44. <div class="nav">flex3</div>
  45. </div>
  46. </body>
  47. </html>

运行效果:

六.align-content属性:

它定义了多根轴线的对齐方式。当项目只有一根轴线的时候,该属性是不起作用的,它的属性值如下:
1、flex-start:交叉轴的起点对齐,
2、flex-end:终点对齐,
3、center:中点对齐,
4、space-between:与交叉轴的两端对齐,轴线之间的间隔平均分布,
5、space-around:每根轴线两侧的间隔都相等,因此,轴线之间的间隔比轴线与边框的间隔大一倍,
6、strentch(默认值):轴线占满整个交叉轴。

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