CSS 网格中输入和标签的基线对齐

kae*_*asu 6 css alignment baseline css-grid

我正在尝试使用 CSS 网格布局构建一个表单。标签显示在左列中,输入显示在右列中。该align-items属性设置为baseline。在 Chrome 中,标签和输入的文本在其基线上垂直对齐。但在 Firefox v94 中,标签的位置高于输入中的文本。

这是该问题的最小可重现示例:

<!DOCTYPE html>
<html>
<head>
  <style>
.login-grid {
  display: grid;
  grid-template-columns: auto 1fr;
  grid-gap: 10px 2px;
  align-items: baseline;
}

label, input {
  font-size: 3em;
}
  </style>
</head>
<body>

  <div class="login-grid">
    <label>username</label>
    <input type="text">
  </div>

</body>
</html>
Run Code Online (Sandbox Code Playgroud)

此示例已在Codepen上发布。

当我将输入包装在 a 中时div,文本确实跨列对齐。我不想这样做,因为嵌套会影响尺寸。

我已经检查了许多关于对齐问题的其他帖子,但我没有找到与 CSS 网格相关的帖子。

Ben*_*het -1

首先,如果您想在不同浏览器之间拥有尽可能接近的设计,我建议使用标准化 css重置 css

那么使用字体渲染总是一个困难,因为 css 属性的实现在浏览器之间总是有点不同。

正如您在下图中看到的,使用标准化和相同的 CSS 代码,Chrome 和 Firefox 之间仍然存在差异:

Chrome 添加“间隙”

在此输入图像描述 在此输入图像描述

但作为替代方案,您可以使用规范化 CSSalign-items: center在 Chrome 和 Firefox 之间获得相同的结果: 在此输入图像描述