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)
您可以使用一个大的伪元素来模拟悬停效果,该伪元素将覆盖所有区域,从而产生相等列的错觉:
.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)