有没有办法让 flexbox 等高列与不同字体大小和字体系列的文本基线字体对齐?

use*_*530 5 html javascript css flexbox

相同的高度和基线不是问题。但是,如果我想要在显示具有不同字体大小的文本的元素上的悬停效果,它会偏移对齐。我愿意使用 Javascript 或任何其他解决方案,但我无法找到一种方法来修复具有悬停效果的元素,以便在应用基线时不会偏移对齐。

简单示例:

.wrapper {
  height: 50px;
  display: flex;
  align-items: baseline;
}

.column {
  height: 100%;
  display: flex;
  align-items: center;
}

.span1, .span2 {
  height: 100%;
  display: inline-flex;
  align-items: flex-end;
}

.span1:hover, .span2:hover {
  background-color: gray;
}

.span1 {
  justify-content: flex-start;
  margin-right: 4px;
  font-size: 32px;
}

.span2 {
  justify-content: flex-end;
  margin-left: 4px;
  font-size: 8px;
}
Run Code Online (Sandbox Code Playgroud)
<div class="wrapper">
  <div class="column">
    <span class="span1">Some content</span>
  </div>
  <div class="column">
    <span class="span2">Some content</span>
  </div
</div>
Run Code Online (Sandbox Code Playgroud)

Tem*_*fif 4

您可以使用一个大的伪元素来模拟悬停效果,该伪元素将覆盖所有区域,从而产生相等列的错觉:

.wrapper {
  display: flex;
  align-items: baseline;
  overflow:hidden;
}

.column {
  display: flex;
  align-items: center;
}
.column > span {
  position:relative;
  z-index:0;
}
.span1:hover::before, 
.span2:hover::before {
  content:"";
  position:absolute;
  z-index:-1;
  top:-200px;
  bottom:-200px;
  left:0;
  right:0;
  background-color: gray;
}

.span1 {
  margin-right: 4px;
  font-size: 32px;
}

.span2 {
  margin-left: 4px;
  font-size: 8px;
}
Run Code Online (Sandbox Code Playgroud)
<div class="wrapper">
  <div class="column">
    <span class="span1">Some content</span>
  </div>
  <div class="column">
    <span class="span2">Some content</span>
  </div>
</div>
Run Code Online (Sandbox Code Playgroud)