css 移动的和台式机上的不同线高和基线

qyswt5oh  于 2023-02-17  发布在  其他
关注(0)|答案(4)|浏览(106)

这是我第三次面对这个问题了。
不知道哪里出了问题,这里有两张照片,是怎么样的:
在台式机上:

在移动设备上:

正如您在移动设备上看到的,文本没有垂直居中对齐。
同样,此问题仅在移动设备上可见。
问题是什么?我错过了什么?这个问题在输入中也很明显。
我使用下面的代码作为按钮:

.button
  font-family: 'Gotham Pro', sans-serif
  font-size: 14px
  color: $color-text--button
  padding: 10px 15px
  text-transform: uppercase
  background: $color-button--default
  border: 1px solid $color-transparent
    • 请注意,我使用填充来设置按钮高度**
    • 更新**

我刚刚在移动android火狐浏览器测试,一切都很好,只有Chrome的问题

5n0oy7gb

5n0oy7gb1#

您的代码中没有指定行高。
尝试设置一个特定的行高。另外我建议,你通过行高而不是通过填充来居中文本。设置一个与按钮高度相同的行高。

    • 中央支助组**
.button {
    height: 40px;
    line-height: 40px;
}

当然,这只适用于单行文本。还可以看看this SO question

osh3o9ms

osh3o9ms2#

是否指定了专门用于移动的的媒体查询?您可能需要添加

// you can use any other value of screen width mobiles use like 640, 768
@media (max-width:480px){
    line-height: 15px;  // The line height you want to show on mobile
}
rnmwe5a2

rnmwe5a23#

不是所有的浏览器都有默认设置,我几乎总是习惯在body元素上设置样式

body{
 font-size: 100%;
 line-height: 1.333%;
}

来处理这种事情。

zhte4eai

zhte4eai4#

今天我不得不使用一个 fancy font,我注意到它在 *chrome移动的 * 设备和 chrome desktop mobile emulator(devtools)上有不同的行高渲染。这显然是一个bug,无论是dekstop还是mobile chrome都需要报告。更改 line-heights 是一个可以修复的选项,但是如果你有很多元素,它会很麻烦。经过一番挖掘,我发现了这个属性

ascent-override: 92%; /* play with values */
descent-override: 10%; /* one might not be needed */

此外,由于我需要为移动的chrome只更改字体,我尝试了媒体查询,它的工作。

@media (max-width: 1000px) {
  @font-face{
    font-family:'FancyFont';
    src:url('fonts/FancyFont.ttf');
    font-weight:400;
    ascent-override: 92%;
  }
}

相关问题