Blogger Information
Blog 45
fans 3
comment 0
visits 45658
Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template
项目在网格单元中和容器中的对齐方式
残破的蛋蛋
Original
608 people have browsed it

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

前面学习了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
Correcting teacher:天蓬老师天蓬老师

Correction status:qualified

Teacher's comments:
Statement of this Website
The copyright of this blog article belongs to the blogger. Please specify the address when reprinting! If there is any infringement or violation of the law, please contact admin@php.cn Report processing!
All comments Speak rationally on civilized internet, please comply with News Comment Service Agreement
0 comments
Author's latest blog post