博客列表 >项目在网格单元中和容器中的对齐方式

项目在网格单元中和容器中的对齐方式

残破的蛋蛋
残破的蛋蛋原创
2020年12月29日 14:14:51551浏览

项目在网格单元中和容器中的对齐方式

前面学习了grid布局的相关基础知识,现在学一下项目在网格单元和容器中的对齐方式。

现有如下样式:

  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>项目在网格单元中的对齐方式</title>
  7. <style>
  8. .container {
  9. border: 1px solid #000;
  10. padding: 0.5em;
  11. display: grid;
  12. grid-template-columns: repeat(3, 1fr);
  13. grid-template-rows: repeat(2, 5em);
  14. grid-auto-rows: 5em;
  15. gap: .5em;
  16. }
  17. .container .item {
  18. background-color: lightcyan;
  19. border: 1px solid #000;
  20. padding: 0.5em;
  21. width: 5em;
  22. height: 2em;
  23. }
  24. </style>
  25. </head>
  26. <body>
  27. <div class="container">
  28. <div class="item">item1</div>
  29. <div class="item">item2</div>
  30. <div class="item">item3</div>
  31. <div class="item">item4</div>
  32. <div class="item">item5</div>
  33. <div class="item">item6</div>
  34. <div class="item">item7</div>
  35. <div class="item">item8</div>
  36. <div class="item">item9</div>
  37. </div>
  38. </body>
  39. </html>
  • 效果图:
    grid布局

一、项目在网格单元中的对齐方式

1.容器中”所有项目“在网格单元中的对齐方式在容器中使用place-items属性设置,格式为:

place-items: 垂直方向 水平方向;

  • 垂直居上,水平居中

place-items: start center;

  • 垂直、水平方向都居中

place-items: center center;

当两个属性值都相同时,可以省略第二个值,简写成如下格式:

place-items: center;

  • 效果图:
    place-items

2.容器中的”某一个项目“在网格单元中的对齐方式使用place-self,这个属性必须用在项目上。

  1. <style>
  2. .container .item:nth-of-type(5) {
  3. background-color: yellow;
  4. place-self: start center;
  5. place-self: end start;
  6. place-self: center;
  7. /* place-self: end end; */
  8. /* 以下写法与上述方法效果一样 */
  9. place-self: end;
  10. }
  11. </style>

place-self: start center;
place-self: end start;
place-self: center;
place-self: end end;

  • 效果图:
    place-self

3.网格单元有两种表现形式:单元格,网格区域(多个单元格组成)。

现在我们选中第5个项目,让它的单元格设置成跨越2行2列的:

  1. <style>
  2. .container .item:nth-of-type(5) {
  3. grid-area: span 2 / span 2;
  4. place-self: center;
  5. }
  6. </style>
  • 效果图:
    网格单元

二、项目在网格容器中的对齐方式

还是上面给出的案例样式,如果要设置项目在网格容器中的对齐方式有一个前提条件:项目容器中存在剩余空间,对齐才有意义。

在容器.container中设置一下行轨、列轨以及一下初始化样式:

  1. <style>
  2. .container {
  3. height: 25em;
  4. border: 1px solid #000;
  5. padding: 0.5em;
  6. display: grid;
  7. /* 只有项目在容器中存在剩余空间,对齐才有必要有意义 */
  8. grid-template-columns: repeat(3, 10em);
  9. grid-template-rows: repeat(2, 5em);
  10. grid-auto-rows: 5em;
  11. gap: .5em;
  12. }
  13. </style>
  • 效果图:
    place-content

项目在容器中的对齐方式有两种:

  • 将所有项目作为一个整体在容器中对齐

默认值为:place-content: start start;效果跟初始化的样式一样。

还有其他用法:

place-content: start center;
place-content: center center;

其中,相同的值也可以简写成一个,例如上述的place-content: center center;也可以写成place-content: center;

  • 效果图:
    place-content

  • 将所有项目打散成独立个体在容器中设置对齐方式

place-content: space-between space-between;
place-content: space-between space-evenly;

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