Firefox:flexbox容器中的项目不保留长宽比[重复]

问题描述 投票:0回答:1

我在解决another issue时碰到了这个问题。我有以下基本布局:

+-----+-----------------+
|     |                 |
|  c  |c   +------+     |
|  o  |o   | item |     |
|  l  |l   |      |     |
|     |    +------+     |
|  1  |2                |
+-----------------------+

col 1col 2是通过CSS Grid创建的。现在,我正在努力将item(水平和垂直)居中放置在col 2内部。

#content {
  display: grid;
  grid-template-columns: minmax(13rem, 15%) minmax(85%, 100%);
  
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  bottom: 0;
  width: 100%;
  height: 100%;
}

#circle {
  background: #7FFF00;
  
  width: 9%;
  padding-top: 9%;
  border-radius: 50%;
  
  margin: auto;
}

.menu {
  background: #D2691E;
  
  grid-row-start: 1;
  grid-row-end: 1;
}

.circle-area {
  background: #191970;
  
  grid-row-start: 1;
  grid-row-end: 1;
  grid-column-start: auto;
  grid-column-end: span 2;
  
  display: flex;
  align-items: center;
  justify-content: center;
  width: 100%;
  height: 100%;
}
<body>
<div id='content'>
<div class='menu'></div>
<div class='circle-area'>
<div id='circle'></div>
</div>
</div>
</body>

Code above on JSFiddle当我在Chrome 62.0和Safari 11.0中进行测试时,我的代码可以正常工作(item保存其长宽比并垂直和水平居中)。虽然当我使用Firefox(56.0)时-在调整窗口大小时会更改宽高比。我尝试了另一个centering technique-使用grid (JSFiddle)(结果是相同的Firefox无法保留宽高比)。现在,commenting out (JSFiddle) css的flex部分将使Firefox保留长宽比,尽管该项目不再垂直居中。我的问题是:

  1. 这是Firefox中的已知问题(错误),还是我的代码有问题?
  2. 在保留长宽比的同时,itemcol 2内部垂直和水平居中的正确解决方法/解决方法是什么?
我碰到了这个问题,同时解决了另一个问题。我有以下基本布局:+ ----- + ----------------- + | | | | c | c + ------ + | | o | o |项目| | | ...
css firefox flexbox centering css-grid
1个回答
2
投票
概括地说,基于百分比的垂直边距/填充的浏览器行为
© www.soinside.com 2019 - 2024. All rights reserved.