【问题标题】:3 Columns centered css grid has 1px margin on the right3列居中的css网格右侧有1px的边距
【发布时间】:2017-09-28 19:45:30
【问题描述】:

我正在使用 css-grid 规范进行一些测试,但在我的第一次测试中遇到了问题。我想创建一个有 3 列的居中网格,并让网格内的 div 填充列的宽度。这可行,但我没想到右边有 1px 的边距:

.wrapper {
  max-width: 400px;
  margin: 0 auto;
  background-color: red;
}

.grid {
  display: grid;
  grid-template-columns: 1fr 1fr 1fr;
}

.cell {
  background-color: grey;
}
<div class="wrapper">
  <div class="grid">
    <div class="cell">a</div>
    <div class="cell">b</div>
    <div class="cell">c</div>
  </div>
</div>

我认为这与百分比舍入问题有关。如果您缩放浏览器,您会看到边距有时会消失。

我知道我可以用 flexbox 解决这个问题并让单元格生长,但我更想知道如何用 css-grid 处理这个问题。

【问题讨论】:

    标签: css css-grid


    【解决方案1】:

    这是一个数学运算,无法修正。例如,如果你将 100 除以 3,你会得到类似 33.33333333333333..........

    顺便说一句,你可以使用

    grid-template-columns: repeat(3, 1fr);
    

    代替

    grid-template-columns: 1fr, 1fr, 1fr;
    

    【讨论】:

    • 谢谢,我知道舍入问题,但您可以想象,考虑到最后一行将位于父容器边缘的网格“线”,因此填充权边缘。除此之外,firefox 也能完美渲染。
    • 你对 CSS 的要求太多了。如果您有 400 像素的 div,并且您要求将其划分为 3 个像素完美的分数,这是不可能的。如果需要,必须减小父 div 的宽度(如 Michael 建议的那样)。
    • 是的,有人指出我这篇文章也指出了我的具体问题。 smashingmagazine.com/2017/09/css-grid-gotchas-stumbling-blocks/…
    猜你喜欢
    • 2020-10-07
    • 2019-07-22
    • 2021-04-27
    • 2022-11-22
    • 2012-07-20
    • 2022-07-22
    • 1970-01-01
    • 2012-02-28
    • 1970-01-01
    相关资源
    最近更新 更多