【问题标题】:Grid property instead of grid-row & grid-columnGrid 属性而不是 grid-row 和 grid-column
【发布时间】:2022-01-19 13:15:33
【问题描述】:

根据MDN Web Docsgrid CSS 属性是一个简写属性,它在单个声明中设置所有显式和隐式网格属性。我想知道如何在下面的示例代码中使用它来代替grid-rowgrid-column,以便进一步缩短它:

.grid-container {
  display: grid;
  gap: 10px;
  background-color: #2196F3;
  padding: 10px;
}

.grid-container div {
  background-color: rgba(255, 255, 255, 0.8);
  text-align: center;
  padding: 20px 0;
  font-size: 30px;
}

.item3 {
  grid-column: 2;
  grid-row: 1 / 3;
}
<div class="grid-container">
  <div class="item1">1</div>
  <div class="item2">2</div>
  <div class="item3">3</div>
</div>

【问题讨论】:

  • 不是 grid 属性用来定义网格的属性,而 grid-row 和 grid-column 告诉系统将具有这些属性的元素放在哪里?

标签: css css-grid grid-layout


【解决方案1】:

您正在寻找grid-areagrid 用于容器

.grid-container {
  display: grid;
  gap: 10px;
  background-color: #2196F3;
  padding: 10px;
}

.grid-container div {
  background-color: rgba(255, 255, 255, 0.8);
  text-align: center;
  padding: 20px 0;
  font-size: 30px;
}

.item3 {
  /*grid-column: 2;
  grid-row: 1 / 3;*/
  grid-area: 1 / 2 / 3 /auto; 
  /* row-start / column-start / row-end / column-end */
}
<div class="grid-container">
  <div class="item1">1</div>
  <div class="item2">2</div>
  <div class="item3">3</div>
</div>

【讨论】:

    【解决方案2】:

    不,这不是它的目的。速记替换了网格容器上的grid-template-columnsgrid-template-rows

    【讨论】:

      【解决方案3】:

      grid 属性是以下内容的简写:

      • 网格自动列
      • 网格自动流
      • 网格自动行
      • 网格模板区域
      • 网格模板列
      • 网格模板行

      https://developer.mozilla.org/en-US/docs/Web/CSS/grid 此属性用于定义网格本身,因此您可以将其添加到 grid-container 而不是其子级。

      你可以使用 grid-area 来缩短你在 item3 中的陈述,它是以下的简写:

      • 网格行开始

      • 网格列开始

      • 网格行端

      • 网格列结束

        所以 item3 可以被设置为:

        .item3 { 网格面积:1 / 2 / 3; }

      【讨论】:

        猜你喜欢
        • 2013-06-27
        • 2019-08-08
        • 1970-01-01
        • 2018-09-01
        • 2021-06-19
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多