博客列表 >14 grid相关的位置控制(20200629)

14 grid相关的位置控制(20200629)

老黑
老黑原创
2020年07月02日 19:56:33538浏览

主要内容:

  1. 单元格在grid容器中的对齐方案(place-content)
  2. 项目在grid单元格中的对齐方案(place-items)
  3. 项目在grid网格区域中的对齐方案(place-self)
  4. row、column间距(gap)

1、单元格在grid容器中的对齐方案

  • items部分

    1. <div class="container">
    2. <div class="item">1</div>
    3. <div class="item">2</div>
    4. <div class="item">3</div>
    5. <div class="item">4</div>
    6. <div class="item">5</div>
    7. <div class="item">6</div>
    8. <div class="item">7</div>
    9. <div class="item">8</div>
    10. <div class="item">9</div>
    11. </div>
  • css部分

    1. .container {
    2. width: 300px;
    3. height: 300px;
    4. background-color: wheat;
    5. display: grid;
    6. grid-template-columns: repeat(3, 50px);
    7. grid-template-rows: repeat(3, 50px);
    8. /* 当容器在存在剩余空间的时候,才有意义 */
    9. /* place-content: 垂直方向对齐方式 水平方向对齐方式; */
    10. /* 剩余空间分配方案1: 在顶部和左侧进行分配,简单的理解为二边分配 */
    11. /* 垂直居中, 水平居左 */
    12. place-content: center start;
    13. /* 垂直居上, 水平居中 */
    14. place-content: start center;
    15. /* 垂直,水平全部居中 */
    16. place-content: center center;
    17. place-content: center;
    18. /* 剩余空间分配方案2: 在每个单元格之间进行分配 */
    19. /* 垂直方向二端对齐, 水平分散对齐 */
    20. place-content: space-between space-around;
    21. /* 垂直分散对齐, 水平平均对齐 */
    22. place-content: space-around space-evenly;
    23. }
    24. .container > .item {
    25. background-color: violet;
    26. }

2、项目在grid单元格中的对齐方案

css部分

  1. .container {
  2. width: 300px;
  3. height: 300px;
  4. background-color: wheat;
  5. display: grid;
  6. /* 单元格中存在剩余空间时, 才有意义 */
  7. grid-template-columns: repeat(3, 1fr);
  8. grid-template-rows: repeat(3, 1fr);
  9. /* place-items: 垂直对齐方式 水平对齐方式; */
  10. place-items: stretch;
  11. /* 关键字 */
  12. /* place-items: auto;
  13. place-items: normal; */
  14. /* 垂直居中, 水平居左 */
  15. place-items: center start;
  16. /* 垂直, 水平都居中 */
  17. place-items: center center;
  18. place-items: center;
  19. place-items: center stretch;
  20. }
  21. .container > .item {
  22. background-color: violet;
  23. width: 50px;
  24. height: 50px;
  25. }

3、项目在grid网格区域中的对齐方案

  1. .container {
  2. width: 300px;
  3. height: 300px;
  4. background-color: wheat;
  5. display: grid;
  6. /* 网格区域,就是由一个或多个单元格组成的矩形空间 */
  7. grid-template-columns: repeat(3, 1fr);
  8. grid-template-rows: repeat(3, 1fr);
  9. /* 整体对齐 */
  10. place-items: center;
  11. }
  12. .container > .item {
  13. width: 50px;
  14. height: 50px;
  15. }
  16. .item:first-of-type {
  17. background-color: violet;
  18. /* grid-area: 1 / 1 / span 2 / span 2; */
  19. grid-area: span 2 / span 2;
  20. /* 具体覆盖全局 */
  21. place-self: center start; /*中,左*/
  22. }
  23. .item:last-of-type {
  24. background-color: lightblue;
  25. grid-area: 1 / 3 / span 3 / span 1;
  26. /* 简化 */
  27. grid-area: span 3;
  28. place-self: end center; /*下,中*/
  29. }

具体见图:

4、row、column间距:gap

  1. .container {
  2. width: 300px;
  3. height: 300px;
  4. background-color: wheat;
  5. display: grid;
  6. grid-template-columns: repeat(3, 1fr);
  7. grid-template-rows: repeat(3, 1fr);
  8. column-gap: 5px;
  9. row-gap: 5px;
  10. gap: 5px;
  11. /* 行10px, 列5px */
  12. /* gap: 行间距 列间距 */
  13. gap: 10px 5px;
  14. }
  15. .container > .item {
  16. background-color: violet;
  17. /* 在单元格的行与列之间添加5px的间距,下面这个方法都不如上面的gap */
  18. /* 方法1: margin */
  19. /* margin: 5px; */
  20. /* 方法2: padding */
  21. /* padding: 5px;
  22. background-clip: content-box; */
  23. }
  24. </style>
声明:本文内容转载自脚本之家,由网友自发贡献,版权归原作者所有,如您发现涉嫌抄袭侵权,请联系admin@php.cn 核实处理。
全部评论
文明上网理性发言,请遵守新闻评论服务协议