【问题标题】:using 'fr' notation in css-template not working in firefox 82.0在 css 模板中使用 'fr' 符号在 Firefox 82.0 中不起作用
【发布时间】:2021-05-19 11:04:46
【问题描述】:

我正在开发一个带有导航栏的网站,并使用自动前缀来实现“最近 5 个版本”的兼容性。 为了在标题中定位元素,我使用 grid-template。

firefox v.82.0 中发生了一些奇怪的事情 如果我仅使用“fr”测量单位定义模板列的尺寸,则会破坏布局。但是如果我将至少一个列单位大小更改为 px 或 % 它会突然起作用

这是代码(已清理,因为我正在使用 React 和 SCSS 模块,而且它伤了眼睛,太吵了):

.header-bar {
  display: grid;
  -ms-grid-rows: 1fr;
  -ms-grid-columns: 1fr 2fr auto;
  grid-template: "logo nav socials" 1fr / 1fr 2fr auto;
  background-color: rgba(#000, 1);
  text-transform: uppercase;
  color: white;
  min-height: 4rem;
  max-height: 6rem;
  width: 100%;
}

.logo {
  grid-area: logo;
  justify-content: center;
  display: inline-flex;
  align-items: center;
  padding: 10px;
  img {
    min-width: 100px;
  }
}

.nav-bar {
  grid-area: nav;
}

.social-links-group {
  grid-area: socials;
  display: flex;
  padding-right: 10px;
  width: 100%;
  justify-content: center;
  align-items: center;
}

.social-link {
  margin: 0 1vw;
  width: 3%;
  padding: 2px;
  min-width: 25px;
  svg {
    fill: rgba($primaryFontColor, 1);
  }
  svg:hover {
    fill: rgba($secondaryColor, 1);
  }
}
<header class="header-bar">
  <div class="logo">
    <img src=".../" />
  </div>
  <nav class="desktop-nav-bar">
    <ul>
      <li><a aria-current="page" class="link active" href="">Link1</a></li>
      <li><a class="link" href="">Link2</a></li>
      <li><a class="link" href="">Link3</a></li>
      <li><a href="" class="link">Link4</a></li>
      <li><a class="link" href="">Link5</a></li>
    </ul>
  </nav>
  <div class="social-links-group">
    <a href="" class="social-link">
      ...
    </a>
    <a href="" class="social-link">
      ...
    </a>
    <a href="" class="social-link">
      ...
    </a>
  </div>
</header>

在 Firefox v.82.0 上,它看起来像这样:

它应该是这样的:

现在,你们中的一些人可能会注意到我在 HTML 中不存在的类选择器“导航栏”上应用了样式。 但是,如上所述,即使不解决此特定问题,如果我仅将列单位大小之一替换为 px 或 %,问题也可以解决。

有人可以就为什么会发生这种情况提出合理的解释吗?

【问题讨论】:

  • 您好,抱歉,已更新。在 .header-bar 中
  • 无法在 FF85 或 Chrome 中复制
  • @Paulie_D - 谢谢。你能建议我能提供什么让复制成为可能吗?我不介意在此处发布所有文件...但是感觉太混乱了...会更好吗?还有其他选择吗?
  • 您只需要编辑 sn-p 并使用足够的代码来演示问题。目前它没有这样做。
  • @Paulie_D - 缺少什么?代码最初是用 react 编写的,我给出了完整的渲染 HTML(没有 base64 img src,或不需要的 svg 组件)。我将更新 css 以包含所有代码......你还想让我放什么?

标签: css reactjs css-grid css-modules react-css-modules


【解决方案1】:

目前我不确定使用单位 fr 是否是个好主意。

浏览器似乎不太支持该单元,canIuse.com 将其标记为实验性...

我不确定我是否得到了正确的信息......

但也许你想自己检查一下:
https://caniuse.com/?search=CSS%20API%3A%20fr

【讨论】:

  • 嗨,谢谢,伙计。我对 caniuse 查询不是很流利,所以我不知道如何自己验证。这很有趣,我要补充一点,我没有看到它在检查器窗口中抱怨。但我会考虑的,谢谢!
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2012-09-09
  • 2014-05-19
  • 1970-01-01
  • 1970-01-01
  • 2022-08-07
  • 2015-05-11
  • 2014-05-29
相关资源
最近更新 更多