【问题标题】:Child only breaks out of inline-grid parent in Firefox [duplicate]子只在 Firefox 中脱离内联网格父级 [重复]
【发布时间】:2019-08-15 08:34:30
【问题描述】:

我希望图像在我的按钮中居中,但它在 Firefox 中突然出现,而在 Google Chrome 中完美运行。为什么会发生这种情况?如何防止这种情况发生?

代码如下:

button {
    all: unset;
    height: 50px;
    width: 50px;
    display: inline-grid;
    place-items: center;
    background-color: firebrick;
}

button img {
    height: 60%;
    margin: auto;
}
<button><img src="https://upload.wikimedia.org/wikipedia/commons/9/99/Black_square.jpg"></button>

这是它在 Chrome 中的外观:

Firefox 中:

【问题讨论】:

  • TL;DR:不要将按钮用作 flex 或网格容器
  • 你必须指定 grid-template-columns: 50px;而不是 width: 50px;

标签: html css firefox css-grid


【解决方案1】:

显示:不需要内联网格。按钮是一个块元素,body中设置的所有东西都会在按钮的中间

button {
  height: 50px;
  width: 50px;
  background-color: firebrick;
}

button img {
  height: 60%;
  margin: auto;
  display: block;
}
<button><img src="https://upload.wikimedia.org/wikipedia/commons/9/99/Black_square.jpg"></button>

【讨论】:

  • Button 是一个块元素,设置在 body 中的所有内容都将位于 button 的中间:你能解释一下你的意思吗?按钮不是块元素
  • @TemaniAfif 为真。 Button 元素默认为 inline-block 元素。然而,答案的核心是正确的。删除inline-grid 即可解决问题。
  • 它不是 100% 居中的,是吗?它看起来向上移动
  • @j.Doe 删除所有内容也可以(margin:auto,text-align:center)..但仍然不明白解释
  • @MiXT4PE 你需要display:block 来避免底部的空白,它将居中
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-04-29
  • 2018-07-31
  • 2017-07-17
  • 2019-09-04
  • 2019-02-05
  • 2020-03-12
相关资源
最近更新 更多