Css 为什么有时垂直居中与高度/线高度不一致';不行?

Css 为什么有时垂直居中与高度/线高度不一致';不行?,css,fonts,centering,Css,Fonts,Centering,我经常遇到css单线垂直居中使用线高度的问题。我通常对按钮使用这种方法。我只是设置高度和线条高度,没有填充,如: height: 44px; line-height: 44px; 但有时它并不完全居中。看这把小提琴: 我只是好奇为什么它不起作用。文本稍微居中,但并不完美。它取决于垂直对齐属性。有时,当您使用例如图标字体时,符号可能具有不同的高度 使用FlexBox可以获得垂直居中的最佳效果:它取决于垂直对齐属性。有时,当您使用例如图标字体时,符号可能具有不同的高度 使用FlexBox可以获得

我经常遇到css单线垂直居中使用线高度的问题。我通常对按钮使用这种方法。我只是设置高度和线条高度,没有填充,如:

height: 44px;
line-height: 44px;
但有时它并不完全居中。看这把小提琴:


我只是好奇为什么它不起作用。文本稍微居中,但并不完美。

它取决于垂直对齐属性。有时,当您使用例如图标字体时,符号可能具有不同的高度


使用FlexBox可以获得垂直居中的最佳效果:

它取决于垂直对齐属性。有时,当您使用例如图标字体时,符号可能具有不同的高度


使用FlexBox可以获得垂直居中的最佳效果:

取决于字体本身的线条高度。有一种字体在下面有更多的空格,所以看起来不对齐

将按钮线高度更改为47px或完全不使用内部标签。例如,Chrome将按钮内的文本与display flex对齐,这是现在垂直居中的最佳方式。
看看这个

取决于字体本身的行高。有一种字体在下面有更多的空格,所以看起来不对齐

将按钮线高度更改为47px或完全不使用内部标签。例如,Chrome将按钮内的文本与display flex对齐,这是现在垂直居中的最佳方式。
看看这个

为什么不改用flex-box呢?您可以将display:flex应用于按钮,它的内容将是一个flex项(在本例中是一个简单的文本)。

为什么不改用flex-box?您可以将display:flex应用于按钮,它的内容将是一个flex项(在本例中是一个简单的文本)。

我的小提琴不使用图标。如果您包含一个示例代码,而不是只包含链接的答案,则该答案会更好,因为链接随时都会消失,呈现你的答案不可用我的小提琴不使用ICON这个答案如果你包含一个示例代码而不是一个只包含链接的答案会更好,因为链接随时都会消失,呈现你的答案不可用我经常使用flexbox,但事实并非如此,因为(真实项目)按钮已经是文本字段旁边的一个flex项(参见flexbox项:P解决的另一个)因此它将同时是flex项+flex容器。是的,我经常使用flexbox,但事实并非如此,因为(真实项目)按钮已经是一个flex项,位于文本字段旁边(参见flexbox项:P解决的另一个),因此它将同时是flex项+flex容器。