javascript - CSS定义任意对齐中心

标签 javascript html css

我正在尝试创建一些 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;    
}

https://jsfiddle.net/mqm7vr8y/4/

关于javascript - CSS定义任意对齐中心,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31878949/

相关文章:

Javascript 非重复数字生成器有时会返回多个数字

css - 将未知元素的宽度设置为过渡时的全宽

css - 无序列表跳转到另一行

javascript - 完全可以用meteor来开发手机app吗

javascript - 重置为默认 slider 值react-native

javascript - 如何从 Canvas 上加载的切片图像获取图像?

javascript - .swf 定位不包含在页面上,在 chrome 中

html - CSS3 动画位置

html - 圆形动画不适用于 SVG

javascript - Discord.js v12.1.1 的 Spotify 命令