极简主义网站:Header flexbox 文本在 Chrome 桌面上垂直居中,但在 Chrome 移动设备上不居中。为什么?

Minimialist Site: Header flexbox text vertically centered on Chrome desktop, but not Chrome mobile. Why?

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8" name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1, user-scalable=0"/>

    <link href='https://fonts.googleapis.com/css?family=Niramit' rel='stylesheet'>
    <link href="https://fonts.googleapis.com/css?family=Nunito" rel="stylesheet">

    <link rel="stylesheet" href="styles/normalize.css">
    <link rel="stylesheet" href="styles/style.css">
</head>
<body>
    <div id="main">
        <div class="bar">
            <div id="title" class="header-text">title</div>
        </div>
    </div>
</body>
</html>

https://jsfiddle.net/uey85nbj/

Chrome 桌面:上方 27 像素,下方 29 像素

Chrome 移动设备:上方 40 像素,下方 31 像素

如果您在包含您的文本的 div 上放置背景颜色,您将了解正在发生的事情(这就是它在 Firefox 和 Chrome 桌面上的样子对我来说,所以我不知道你是怎么得到你的第一个截图的):

div 非常适合垂直居中,但由于您的文本全部为小写,光学对齐已关闭。字体并不总是以您期望的方式占据 space,部分原因是字体中的大多数字符不会占据上下的所有 space。文本与 space 的交互方式将因字体而异。将 'title' 更改为 "TITLE" 并查看它的外观。

摆弄行高可以在这里帮助你,或者你可以做 position: relative; top: -2px,或 transform: translateY(-2px) 或任何它是最有帮助的。

我也建议远离 mm 作为一个单位;像素、ems/rems、百分比和视口单位更好地表示页面中事物的测量方式。

正如@Akhil Aravind 所建议的,字体似乎是问题所在。这是没有特殊字体的图像。