【问题标题】:simple css grid not working on IE11简单的 CSS 网格不适用于 IE11
【发布时间】:2018-08-08 01:43:06
【问题描述】:

我正在尝试使用 css 网格并尝试制作一个简单的示例,但它似乎不适用于 IE11,尽管我使用了适当的语法:

.grid {
  background: gold;
  height: 90vh;
  display: -ms-grid;
  display: grid;
  grid-gap: 20px;
  -ms-grid-columns: 405px 1fr;
  grid-template-columns: 405px 1fr;
  grid-template-rows: 1fr;
  -ms-grid-rows: 1fr;
}

section {
  background: red;
}
<div class="grid">
  <section>
    section1
  </section>
  <section>
    section2
  </section>
</div>

【问题讨论】:

  • 让 CSS Grid 在 IE 中工作并非易事。本文可能对您有所帮助:rachelandrew.co.uk/archives/2016/11/26/…
  • @VadimOvchinnikov - 我实际上找到了一种方法,正如您在下面的回答中看到的那样

标签: css internet-explorer-11 css-grid


【解决方案1】:

显然您需要明确设置网格中每个元素的位置,因此对于问题中的示例,您需要这样做:

<div class="grid">
  <section class="s1">
    section1    
  </section>
  <section class="s2">
    section2
  </section>
</div>

.s1 {
  padding: 20px;
  background: red;
  -ms-grid-row: 1;
  -ms-grid-column: 1;

}

.s2 {
  padding: 20px;
  background: green;
  -ms-grid-row: 1;
  -ms-grid-column: 2;

}

手动操作可能非常繁琐,但如果您使用 grid-template-areas,autoprefixer 会自动为您渲染。

所以最后的例子是这样的:

.grid {
  grid-template-areas: "s1 s2";
  background: gold;
  height: 500px;
  display: -ms-grid;
  display: grid;
  grid-gap: 20px;
  -ms-grid-columns: 405px 1fr;
  grid-template-columns: 405px 1fr;
  grid-template-rows: 1fr;
  -ms-grid-rows: 1fr;
}

.grid .grid{
    height: 300px;
}

.s1 {
  padding: 20px;
  background: red;
  -ms-grid-row: 1;
  -ms-grid-column: 1;
  grid-area: s1;
}

.s1 .s1 {
  background: teal;
}

.s2 {
  padding: 20px;
  background: green;
  -ms-grid-row: 1;
  -ms-grid-column: 2;
  grid-area: s2;
}

.s2 .s2 {
  background: yellow;
}

section section {
  background: green;
}
<div class="grid">
  <section class="s1">
    section1    
  </section>
  <section class="s2">
    <div class="grid">
      <section class="s1">
    nested-section1    
  </section>
  <section class="s2">
    nested-section2
  </section>
    </div>
  </section>
</div>

【讨论】:

  • IE 将所有网格项堆叠到第一个网格单元。所以值 -ms-grid-column: 1-ms-grid-row: 1 可以省略,因为它们是默认值。
  • 这是由 autoprefixer 生成的
猜你喜欢
  • 1970-01-01
  • 2021-02-06
  • 2021-07-07
  • 2016-06-15
  • 1970-01-01
  • 2018-06-09
  • 1970-01-01
  • 2018-11-01
  • 1970-01-01
相关资源
最近更新 更多