【问题标题】:CSS3 - grid-template-areas not spanning correctlyCSS3 - 网格模板区域未正确跨越
【发布时间】:2018-12-16 17:17:59
【问题描述】:

当我尝试使用网格区域时,它们没有跨越适当数量的列。然而,grid-template-columns 属性工作正常,它显示得好像我根本没有使用网格区域。

scss:

.mygrid {
  display: grid;
  padding: 3%;
  grid-template-columns: 1fr;
  grid-template-areas: "a7" "a5" "a10" "a15" "a20";
  grid-gap: 0.4em;
  @media (min-width: 400px) {
    grid-template-columns: 1fr 1fr;
    grid-template-areas:
      "a7 a7"
      "a5 a10"
      "a15 a20";
  }
  @media (min-width: 600px) {
    grid-template-columns: 1fr 1fr 1fr 1fr;
    grid-template-areas:
      "a7 a7 a7 a7"
      "a5 a10 a15 a20";
  }
  .box {
    display: inline;
    padding: 1em;
    box-sizing: border-box;
  }
  .a7 {
    grid-area: a7;
  }
  .a5 {
    grid-area: a5;
  }
  .a10 {
    grid-area: a10;
  }
  .a15 {
    grid-area: a15;
  }
  .a20 {
    grid-area: a20;
  }
}

html:

<div class="mygrid">
    <div id="7" class="box a7">
      <span>7</span>
    </div>

    <div id="5" class="box a5">
      <span>5</span>
    </div>

    <div id="10" class="box a10">
     <span>10</span>
    </div>

    <div id="15" class="box a15">
      <span>15</span>
    </div>

    <div id="20" class="box a20">
      <span>20</span>
    </div>
</div>

我不确定是什么导致了这个问题,我的代码看起来是正确的

尽管在我的项目中尝试了@vals 答案,但我仍然收到同样的问题。有没有什么众所周知的东西可以级联并导致它崩溃?

我还验证了我的 html 以确保没有导致此问题的错误。

【问题讨论】:

    标签: css grid css-grid


    【解决方案1】:

    将标识符更改为非数字:

    .mygrid {
      display: grid;
      padding: 3%;
      grid-template-columns: 1fr;
      grid-template-areas: "a7" "a5" "a10" "a15" "a20";
      grid-gap: 0.4em;
    }
    
    @media (min-width: 400px) {
      .mygrid {
        grid-template-columns: 1fr 1fr;
        grid-template-areas: "a7 a7" "a5 a10" "a15 a20";
      }
    }
    
    @media (min-width: 600px) {
      .mygrid {
        grid-template-columns: 1fr 1fr 1fr 1fr;
        grid-template-areas: "a7 a7 a7 a7" "a5 a10 a15 a20";
      }
    }
    
    .box {
      display: inline;
      padding: 1em;
      box-sizing: border-box;
    }
    
    .b7 {
      grid-area: a7;
      background-color: yellow;
    }
    
    .b5 {
      grid-area: a5;
    }
    
    .b10 {
      grid-area: a10;
    }
    
    .b15 {
      grid-area: a15;
    }
    
    .b20 {
      grid-area: a20;
    }
    <div class="mygrid">
      <div id="7" class="box b7">
        <span>7</span>
      </div>
    
      <div id="5" class="box b5">
        <span>5</span>
      </div>
    
      <div id="10" class="box b10">
        <span>10</span>
      </div>
    
      <div id="15" class="box b15">
        <span>15</span>
      </div>
    
      <div id="20" class="box b20">
        <span>20</span>
      </div>
    </div>

    【讨论】:

    • 我曾尝试过,只是再次尝试,但仍然给我同样的问题。
    • 我什至没有注意到sn-p。那么它一定是这个代码之外的东西影响它......我曾尝试将clear: both添加到mygrid div,但这并没有解决它。有没有人知道什么会级联导致它崩溃?
    • 你有没有注意到我改变了类名和区域名?
    • 我的编译器一定是在我的编辑过程中停止了,它现在可以处理所有这些更改。非常感谢。
    • 很高兴它帮助了你!
    猜你喜欢
    • 2018-08-15
    • 2021-11-12
    • 1970-01-01
    • 1970-01-01
    • 2023-03-09
    • 1970-01-01
    • 1970-01-01
    • 2021-10-15
    • 1970-01-01
    相关资源
    最近更新 更多