CodeGym /Java 课程 /Frontend SELF ZH /Grid中的元素对齐

Grid中的元素对齐

Frontend SELF ZH
第 28 级 , 课程 1
可用

7.1 属性 justify-items

CSS Grid Layout 为管理网格内元素的对齐提供了有效工具。属性 justify-items, align-itemsplace-items 能让你精确设置grid元素在单元格内横向和纵向的排列方式。我们来详细看看这些属性。

属性 justify-items 定义了所有 grid 元素在其单元格内的横向对齐。

语法:

    
      .grid-container {
        justify-items: value;
      }
    
  

其中:

  • value: 确定元素横向对齐的值。可选值:
    • start: 将元素对齐到单元格的开始
    • end: 将元素对齐到单元格的结束
    • center: 将元素在单元格中居中
    • stretch (默认): 拉伸元素以填满单元格的完整宽度

示例 1: 对齐到单元格的开始

在此示例中,所有元素将被对齐到其单元格的左边缘:

CSS
    
      .grid-container {
        display: grid;
        grid-template-columns: repeat(3, 1fr);
        justify-items: start; /* 所有元素都对齐到单元格的开始 */
      }
    
  

示例 2: 居中元素

在此示例中,所有元素将被居中在其单元格内:

CSS
    
      .grid-container {
        display: grid;
        grid-template-columns: repeat(3, 1fr);
        justify-items: center; /* 所有元素在单元格内居中 */
      }
    
  

7.2 属性 align-items

属性 align-items 定义了所有 grid 元素在其单元格内的纵向对齐。

语法:

    
      .grid-container {
        align-items: value;
      }
    
  

其中:

  • value: 确定元素纵向对齐的值。可选值:
    • start: 将元素对齐到单元格的开始
    • end: 将元素对齐到单元格的结束
    • center: 将元素在单元格内垂直居中
    • stretch (默认): 拉伸元素以填满单元格的完整高度

示例 1: 对齐到单元格的开始

在此示例中,所有元素将被对齐到其单元格的上边缘:

CSS
    
      .grid-container {
        display: grid;
        grid-template-columns: repeat(3, 1fr);
        grid-template-rows: repeat(3, 100px);
        align-items: start; /* 所有元素都对齐到单元格的顶部 */
      }
    
  

示例 2: 垂直居中元素

在此示例中,所有元素将被垂直居中在其单元格内:

CSS
    
      .grid-container {
        display: grid;
        grid-template-columns: repeat(3, 1fr);
        grid-template-rows: repeat(3, 100px);
        align-items: center; /* 所有元素在单元格内垂直居中 */
      }
    
  

7.3 属性 place-items

属性 place-items 是同时为 align-itemsjustify-items 设置值的简写。

语法:

    
      .grid-container {
        place-items: align-value justify-value;
      }
    
  

其中:

  • align-value: 单元格内的纵向对齐值 (align-items)
  • justify-value: 单元格内的横向对齐值 (justify-items)

如果为属性 place-items 指定一个值,例如 place-items: stretch, 元素将在两个方向上对齐。

示例 1: 垂直和水平居中元素

在此示例中,所有元素将在其单元格内水平和垂直居中:

CSS
    
      .grid-container {
        display: grid;
        grid-template-columns: repeat(3, 1fr);
        grid-template-rows: repeat(3, 100px);
        place-items: center; /* 元素在水平和垂直方向上居中 */
      }
    
  

示例 2: 元素高度拉伸并对齐到左上角

在此示例中,所有元素都将在高度上被拉伸,并对齐到其单元格的左上角:

CSS
    
      .grid-container {
        display: grid;
        grid-template-columns: repeat(3, 1fr);
        grid-template-rows: repeat(3, 100px);
        place-items: stretch start; /* 元素在高度上被拉伸并对齐到左上角 */
      }
    
  

7.4 完整实现示例

完整实现示例:

CSS
    
      .grid-container {
        display: grid;
        grid-template-columns: repeat(3, 1fr); /* 三个等宽列 */
        grid-template-rows: repeat(3, 100px); /* 三个固定高度行 */
        gap: 10px;
        place-items: center center; /* 在水平和垂直方向上居中元素 */
      }

      .grid-item {
        background-color: #3498db;
        color: white;
        padding: 20px;
        text-align: center;
        border: 1px solid #fff;
      }
    
  
HTML
    
      <!DOCTYPE html>
      <html lang="en">
        <head>
          <meta charset="UTF-8">
          <meta name="viewport" content="width=device-width, initial-scale=1.0">
          <title>CSS Grid中的元素对齐示例</title>
          <link rel="stylesheet" href="styles.css">
        </head>
        <body>
          <div class="grid-container">
            <div class="grid-item item1">元素 1</div>
            <div class="grid-item item2">元素 2</div>
            <div class="grid-item item3">元素 3</div>
            <div class="grid-item item4">元素 4</div>
            <div class="grid-item item5">元素 5</div>
            <div class="grid-item item6">元素 6</div>
          </div>
        </body>
      </html>
    
  

代码解释:

  • .grid-container: 创建一个具有三个等宽列和三个固定高度行的Grid容器。 使用属性 place-items 在水平和垂直方向上居中元素
  • .grid-item: 定义网格元素的基本样式,如背景色、文字颜色、内边距、文字居中和边框
评论
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION