我正在尝试创建一些 CSS 来显示数学方程式,但遇到了一些障碍。
基本上,我希望能够排列分数,以便通过中间的线与其余代码居中。如果分子和分母相同,这很容易,只需将所有内容居中对齐即可,但如果它们的大小不同,就会搞砸。
我考虑过通过 Javascript 强制两者大小相同,但如果分子高几级而分母只有一行,这似乎既不优雅又有点愚蠢。
到目前为止我得到了什么:(JSFiddle:https://jsfiddle.net/mqm7vr8y/)
CSS
.math-display {
border: 1px solid #000000;
width: 300px;
font-family: latin-modern-math;
font-size: 20pt;
text-align: center;
}
.math-display span {
display: inline-block;
vertical-align:middle;
padding: 0px 2px;
}
.math-display .divide, .math-display .numerator, .math-display .denominator {
padding: 0px 5px;
}
.math-display .divide {
display: inline-block;
text-align: center;
}
.math-display .numerator {
display: inline-block;
}
.math-display .denominator {
border-top: 1px solid #000;
display: block;
}
HTML
<div class="math-display" id="mathDisplay" tabindex="0">
<span class='number'>2</span>
<span class='operator'>+</span>
<span class='number'>3</span>
<span class='variable'>x</span>
<span class='divide'>
<span class='numerator'>
<span class='letter'>d</span>
<span class='divide'>
<span class='numerator'>
<span class='letter'>d</span>
<span class='letter'>u</span>
</span>
<span class='denominator'>
<span class='letter'>d</span>
<span class='letter'>v</span>
</span>
</span>
</span>
<span class='denominator'>
<span class='letter'>d</span>
<span class='letter'>v</span>
</span>
</span>
我认为我可能不得不使用 Javascript 来处理它,但由于我对 CSS 的了解非常薄弱,我想在我这样做之前我会问我是否遗漏了什么这项工作。
为您提供的任何帮助干杯。
最佳答案
在另一个跨度之后直接将样式应用于分界线:
.math-display span + .divide {
vertical-align: -22px;
}
关于javascript - CSS定义任意对齐中心,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31878949/