当前位置:Gxlcms > css > css中grid属性的用法介绍(代码)

css中grid属性的用法介绍(代码)

时间:2021-07-01 10:21:17 帮助过:19人阅读

本篇文章给大家带来的内容是关于css中grid属性的用法介绍(代码),有一定的参考价值,有需要的朋友可以参考一下,希望对你有所帮助。

grid布局

加在父元素上的属性

grid-template-columns/grid-template-rows

  • 定义元素的行或列的宽高

  • 如果父元素被等分成了9等分,则,不管有多少个子元素,都显示9等分

  • grid-template-columns: 33% 33% 33%;可以写成grid-template-columns:repeat(3, 33%);

  1. .container {
  2. width: 200px;
  3. height: 200px;
  4. display: grid;
  5. background-color: coral;
  6. margin: 10px;
  7. }
  8. .container .item {
  9. border: 1px solid #ccc;
  10. background-color: chocolate;
  11. }
  12. .container1 {
  13. grid-template-columns: 33% 33% 33%;
  14. grid-template-rows: 33% 33% 33%;
  15. }
  1. <div class="container container1">
  2. <div class="item item-1"></div>
  3. <div class="item item-2"></div>
  4. </div>

3055378240-5bc6de9adc676_articlex.png

grid-template-areas

  • 父元素的grid-template-areas配合子元素的grid-area定义网格区域

  • 一个句点表示一个空的网格单元

  1. .container {
  2. width: 200px;
  3. height: 200px;
  4. display: grid;
  5. background-color: coral;
  6. margin: 10px;
  7. }
  8. .container .item {
  9. border: 1px solid #ccc;
  10. background-color: chocolate;
  11. }
  12. .container2 {
  13. grid-template-columns: 1fr 1fr 1fr 1fr;
  14. grid-template-rows: 1fr 1fr 1fr;
  15. grid-template-areas: "header header . footer"
  16. "main main . sidebar"
  17. "main main . sidebar";
  18. }
  19. .container2 .item-1 {
  20. grid-area: header;
  21. }
  22. .container2 .item-2 {
  23. grid-area: main;
  24. }
  25. .container2 .item-3 {
  26. grid-area: sidebar;
  27. }
  28. .container2 .item-4 {
  29. grid-area: footer;
  30. }
  1. <div class="container container2">
  2. <div class="item item-1">header</div>
  3. <div class="item item-2">main</div>
  4. <div class="item item-3">sidebar</div>
  5. <div class="item item-4">footer</div>
  6. </div>

67490298-5bc6dea809ffb_articlex.png

grid-column-gap/grid-row-gap/grip-gap

  • 指网格线的大小,也可以说是网格子项之间的间距

  1. .container {
  2. width: 200px;
  3. height: 200px;
  4. display: grid;
  5. background-color: coral;
  6. margin: 10px;
  7. }
  8. .container .item {
  9. border: 1px solid #ccc;
  10. background-color: chocolate;
  11. }
  12. .container3 {
  13. grid-template-columns: repeat(3, 30%);
  14. grid-template-rows: repeat(3, 30%);
  15. grid-column-gap: 2%;
  16. grid-row-gap: 2%;
  17. }
  1. <div class="container container3">
  2. <div class="item item-1"></div>
  3. <div class="item item-2"></div>
  4. <div class="item item-3"></div>
  5. <div class="item item-4"></div>
  6. <div class="item item-5"></div>
  7. <div class="item item-6"></div>
  8. <div class="item item-7"></div>
  9. <div class="item item-8"></div>
  10. <div class="item item-9"></div>
  11. </div>

1712729364-5bc6deb317842_articlex.png

justify-items/align-items

  • justify-items让子元素的内容和纵向列轴对齐

  • align-items让子元素的内容和横向行轴对齐

  • 两个属性都有四个值

  • 我的例子中,为了方便对比,嵌套了grid网格

  1. .container {
  2. width: 200px;
  3. height: 200px;
  4. display: grid;
  5. background-color: coral;
  6. margin: 10px;
  7. }
  8. .container .item {
  9. border: 1px solid #ccc;
  10. background-color: chocolate;
  11. }
  12. .container4 {
  13. width: 400px;
  14. height: 200px;
  15. grid-template-columns: repeat(4, 25%);
  16. grid-template-rows: repeat(2, 50%);
  17. }
  18. .container4 .item {
  19. display: grid;
  20. }
  21. .container4 .item p {
  22. background-color: coral;
  23. border: 1px dashed #aaa
  24. }
  25. .container4 .item-1 {
  26. grid-template-columns: repeat(2, 50%);
  27. grid-template-rows: repeat(2, 50%);
  28. justify-items: start;
  29. }
  30. .container4 .item-2 {
  31. grid-template-columns: repeat(2, 50%);
  32. grid-template-rows: repeat(2, 50%);
  33. justify-items: end;
  34. }
  35. .container4 .item-3 {
  36. grid-template-columns: repeat(2, 50%);
  37. grid-template-rows: repeat(2, 50%);
  38. justify-items: center;
  39. }
  40. .container4 .item-4 {
  41. grid-template-columns: repeat(2, 50%);
  42. grid-template-rows: repeat(2, 50%);
  43. justify-items: stretch;
  44. }
  45. .container4 .item-5 {
  46. grid-template-columns: repeat(2, 50%);
  47. grid-template-rows: repeat(2, 50%);
  48. align-items: start;
  49. }
  50. .container4 .item-6 {
  51. grid-template-columns: repeat(2, 50%);
  52. grid-template-rows: repeat(2, 50%);
  53. align-items: end;
  54. }
  55. .container4 .item-7 {
  56. grid-template-columns: repeat(2, 50%);
  57. grid-template-rows: repeat(2, 50%);
  58. align-items: center;
  59. }
  60. .container4 .item-8 {
  61. grid-template-columns: repeat(2, 50%);
  62. grid-template-rows: repeat(2, 50%);
  63. align-items: stretch;
  64. }
  1. <div class="container container4">
  2. <div class="item item-1">
  3. <div>list</div>
  4. <div>list</div>
  5. <div>list</div>
  6. <div>list</div>
  7. </div>
  8. <div class="item item-2">
  9. <div>list</div>
  10. <div>list</div>
  11. <div>list</div>
  12. <div>list</div>
  13. </div>
  14. <div class="item item-3">
  15. <div>list</div>
  16. <div>list</div>
  17. <div>list</div>
  18. <div>list</div>
  19. </div>
  20. <div class="item item-4">
  21. <div>list</div>
  22. <div>list</div>
  23. <div>list</div>
  24. <div>list</div>
  25. </div>
  26. <div class="item item-5">
  27. <div>list</div>
  28. <div>list</div>
  29. <div>list</div>
  30. <div>list</div>
  31. </div>
  32. <div class="item item-6">
  33. <div>list</div>
  34. <div>list</div>
  35. <div>list</div>
  36. <div>list</div>
  37. </div>
  38. <div class="item item-7">
  39. <div>list</div>
  40. <div>list</div>
  41. <div>list</div>
  42. <div>list</div>
  43. </div>
  44. <div class="item item-8">
  45. <div>list</div>
  46. <div>list</div>
  47. <div>list</div>
  48. <div>list</div>
  49. </div>

3139887500-5bc6dec2c1239_articlex.png

justify-content/align-content

  • 设置子元素的对齐方式,justify表示纵向,align表示横向

  1. .container {
  2. width: 200px;
  3. height: 200px;
  4. display: grid;
  5. background-color: coral;
  6. margin: 10px;
  7. }
  8. .container .item {
  9. border: 1px solid #ccc;
  10. background-color: chocolate;
  11. }
  12. .container5 {
  13. width: 700px;
  14. height: 200px;
  15. grid-template-columns: repeat(7, 14%);
  16. grid-template-rows: repeat(2, 50%);
  17. }
  18. .container5 .item {
  19. display: grid;
  20. }
  21. .container5 .item p {
  22. background-color: coral;
  23. border: 1px dashed #aaa
  24. }
  25. .container5 .item-1 {
  26. grid-template-columns: repeat(2, 40%);
  27. grid-template-rows: repeat(2, 40%);
  28. justify-content: start;
  29. }
  30. .container5 .item-2 {
  31. grid-template-columns: repeat(2, 40%);
  32. grid-template-rows: repeat(2, 40%);
  33. justify-content: end;
  34. }
  35. .container5 .item-3 {
  36. grid-template-columns: repeat(2, 40%);
  37. grid-template-rows: repeat(2, 40%);
  38. justify-content: center;
  39. }
  40. .container5 .item-4 {
  41. grid-template-columns: repeat(2, 40%);
  42. grid-template-rows: repeat(2, 40%);
  43. justify-content: stretch;
  44. }
  45. .container5 .item-5 {
  46. grid-template-columns: repeat(2, 40%);
  47. grid-template-rows: repeat(2, 40%);
  48. justify-content: space-around;
  49. }
  50. .container5 .item-6 {
  51. grid-template-columns: repeat(2, 40%);
  52. grid-template-rows: repeat(2, 40%);
  53. justify-content: space-between;
  54. }
  55. .container5 .item-7 {
  56. grid-template-columns: repeat(2, 40%);
  57. grid-template-rows: repeat(2, 40%);
  58. justify-content: space-evenly;
  59. }
  60. .container5 .item-8 {
  61. grid-template-columns: repeat(2, 40%);
  62. grid-template-rows: repeat(2, 40%);
  63. align-content: start;
  64. }
  65. .container5 .item-9 {
  66. grid-template-columns: repeat(2, 40%);
  67. grid-template-rows: repeat(2, 40%);
  68. align-content: end;
  69. }
  70. .container5 .item-10 {
  71. grid-template-columns: repeat(2, 40%);
  72. grid-template-rows: repeat(2, 40%);
  73. align-content: center;
  74. }
  75. .container5 .item-11 {
  76. grid-template-columns: repeat(2, 40%);
  77. grid-template-rows: repeat(2, 40%);
  78. align-content: stretch;
  79. }
  80. .container5 .item-12 {
  81. grid-template-columns: repeat(2, 40%);
  82. grid-template-rows: repeat(2, 40%);
  83. align-content: space-around;
  84. }
  85. .container5 .item-13 {
  86. grid-template-columns: repeat(2, 40%);
  87. grid-template-rows: repeat(2, 40%);
  88. align-content: space-between;
  89. }
  90. .container5 .item-14 {
  91. grid-template-columns: repeat(2, 40%);
  92. grid-template-rows: repeat(2, 40%);
  93. align-content: space-evenly;
  94. }
  1. <div class="container container5">
  2. <div class="item item-1">
  3. <div>list</div>
  4. <div>list</div>
  5. <div>list</div>
  6. <div>list</div>
  7. </div>
  8. <div class="item item-2">
  9. <div>list</div>
  10. <div>list</div>
  11. <div>list</div>
  12. <div>list</div>
  13. </div>
  14. <div class="item item-3">
  15. <div>list</div>
  16. <div>list</div>
  17. <div>list</div>
  18. <div>list</div>
  19. </div>
  20. <div class="item item-4">
  21. <div>list</div>
  22. <div>list</div>
  23. <div>list</div>
  24. <div>list</div>
  25. </div>
  26. <div class="item item-5">
  27. <div>list</div>
  28. <div>list</div>
  29. <div>list</div>
  30. <div>list</div>
  31. </div>
  32. <div class="item item-6">
  33. <div>list</div>
  34. <div>list</div>
  35. <div>list</div>
  36. <div>list</div>
  37. </div>
  38. <div class="item item-7">
  39. <div>list</div>
  40. <div>list</div>
  41. <div>list</div>
  42. <div>list</div>
  43. </div>
  44. <div class="item item-8">
  45. <div>list</div>
  46. <div>list</div>
  47. <div>list</div>
  48. <div>list</div>
  49. </div>
  50. <div class="item item-9">
  51. <div>list</div>
  52. <div>list</div>
  53. <div>list</div>
  54. <div>list</div>
  55. </div>
  56. <div class="item item-10">
  57. <div>list</div>
  58. <div>list</div>
  59. <div>list</div>
  60. <div>list</div>
  61. </div>
  62. <div class="item item-11">
  63. <div>list</div>
  64. <div>list</div>
  65. <div>list</div>
  66. <div>list</div>
  67. </div>
  68. <div class="item item-12">
  69. <div>list</div>
  70. <div>list</div>
  71. <div>list</div>
  72. <div>list</div>
  73. </div>
  74. <div class="item item-13">
  75. <div>list</div>
  76. <div>list</div>
  77. <div>list</div>
  78. <div>list</div>
  79. </div>
  80. <div class="item item-14">
  81. <div>list</div>
  82. <div>list</div>
  83. <div>list</div>
  84. <div>list</div>
  85. </div>
  86. </div>

269034767-5bc6deda1b34b_articlex.png

grid-auto-columns/grid-auto-rows

  • grid-column后面的值如果是1 / 2形式,表示的是从第1列网格线开始到第2列网格线结束,如果这个属性定义的网格超出了父元素的范围,则会自动生成隐式网格

  • grid-auto-columns和grid-auto-rows两个属性来指定这些隐式网格轨迹的宽度

  1. .container {
  2. width: 200px;
  3. height: 200px;
  4. display: grid;
  5. background-color: coral;
  6. margin: 10px;
  7. }
  8. .container .item {
  9. border: 1px solid #ccc;
  10. background-color: chocolate;
  11. }
  12. .container6 {
  13. width: 120px;
  14. height: 180px;
  15. grid-template-columns: 60px 60px;
  16. grid-template-rows: 90px 90px;
  17. grid-auto-columns: 60px;
  18. }
  19. .container6 .item-1 {
  20. grid-column: 1 / 2;
  21. grid-row: 2 / 3;
  22. border: 1px solid #ccc;
  23. }
  24. .container6 .item-2 {
  25. grid-column: 5 / 6;
  26. grid-row: 2 / 3;
  27. border: 1px solid #ccc;
  28. }
  1. <div class="container container6">
  2. <div class="item-1">1/2&2/3</div>
  3. <div class="item-2">5/6&2/3</div>
  4. </div>

2302366734-5bc6dee9667e8_articlex.png

3646109696-5bc6def2b2782_articlex.png

grid-auto-flow

  • 没有网格元素的时候,自动排列

  • row表示从左到右排列,column表示从上到下排列

  1. .container {
  2. width: 200px;
  3. height: 200px;
  4. display: grid;
  5. background-color: coral;
  6. margin: 10px;
  7. }
  8. .container .item {
  9. border: 1px solid #ccc;
  10. background-color: chocolate;
  11. }
  12. .container7 {
  13. display: grid;
  14. width: 200px;
  15. height: 40px;
  16. grid-template-columns: 40px 40px 40px 40px 40px;
  17. grid-template-rows: 40px 40px;
  18. /* grid-auto-flow: row; */
  19. grid-auto-flow: column;
  20. }
  21. .container7 .item-1 {
  22. grid-column: 1;
  23. grid-row: 1 / 3;
  24. }
  25. .container7 .item-5 {
  26. grid-column: 5;
  27. grid-row: 1 / 3;
  28. }
  1. <div class="container container7">
  2. <div class="item item-1">1</div>
  3. <div class="item item-2">2</div>
  4. <div class="item item-3">3</div>
  5. <div class="item item-4">4</div>
  6. <div class="item item-5">5</div>
  7. </div>

2108510945-5bc6df02ee132_articlex.png

636158564-5bc6df0b3e015_articlex.png

加在子元素上的属性

grid-column-start/grid-column-end/grid-row-start/grid-row-end/grid-column/grid-row

  • 定义网格开始或者结束的位置

  • 值为数字,表示从这条线开始。值为span加数字,表示覆盖了这条线的位置

  1. .container {
  2. width: 200px;
  3. height: 200px;
  4. display: grid;
  5. background-color: coral;
  6. margin: 10px;
  7. }
  8. .container .item {
  9. border: 1px solid #ccc;
  10. background-color: chocolate;
  11. }
  12. .container8 {
  13. margin-top: 20px;
  14. grid-template-columns: repeat(5, 20%);
  15. grid-template-rows: repeat(5, 20%);
  16. }
  17. .container8 .item-1 {
  18. grid-column-start: 2;
  19. grid-column-end: 4;
  20. grid-row-start: 1;
  21. grid-row-end: 2;
  22. }
  23. .container8 .item-2 {
  24. grid-column-start: 4;
  25. grid-column-end: span 5;
  26. grid-row-start: 2;
  27. grid-row-end: span 5;
  28. }
  29. .container8 .item-3 {
  30. grid-column: 1 / span 2;
  31. grid-row: 2 / span 4;
  32. }
  1. <div class="container container8">
  2. <div class="item item-1">item-1</div>
  3. <div class="item item-2">item-2</div>
  4. <div class="item item-3">item-3</div>
  5. </div>

4142444002-5bc6df196fa88_articlex.png

1801515800-5bc6df2167efb_articlex.png

justify-self/align-self

  • 网格子项内容与格线对齐

  1. .container {
  2. width: 200px;
  3. height: 200px;
  4. display: grid;
  5. background-color: coral;
  6. margin: 10px;
  7. }
  8. .container .item {
  9. border: 1px solid #ccc;
  10. background-color: chocolate;
  11. }
  12. .container9 {
  13. width: 400px;
  14. height: 200px;
  15. grid-template-columns: repeat(4, 25%);
  16. grid-template-rows: repeat(2, 50%);
  17. }
  18. .container9 .item-1 {
  19. justify-self: start;
  20. }
  21. .container9 .item-2 {
  22. justify-self: end;
  23. }
  24. .container9 .item-3 {
  25. justify-self: center;
  26. }
  27. .container9 .item-4 {
  28. justify-self: stretch;
  29. }
  30. .container9 .item-5 {
  31. align-self: start;
  32. }
  33. .container9 .item-6 {
  34. align-self: end;
  35. }
  36. .container9 .item-7 {
  37. align-self: center;
  38. }
  39. .container9 .item-8 {
  40. align-self: stretch;
  41. }
  1. <div class="container container9">
  2. <div class="item item-1">item-1</div>
  3. <div class="item item-2">item-2</div>
  4. <div class="item item-3">item-3</div>
  5. <div class="item item-4">item-4</div>
  6. <div class="item item-5">item-5</div>
  7. <div class="item item-6">item-6</div>
  8. <div class="item item-7">item-7</div>
  9. <div class="item item-8">item-8</div>
  10. </div>

2711879531-5bc6df30eaa16_articlex.png

3292176044-5bc6df3a33b07_articlex.png

以上就是css中grid属性的用法介绍(代码)的详细内容,更多请关注Gxl网其它相关文章!

人气教程排行