之间有什么区别吗?
<math display="inline"></math>
和
<math style="display: inline;"></math>
?
谢谢!
答案 0 :(得分:1)
虽然display="inline"
和style="display:inline"
通常表现相似,但MathML的display
属性和CSS display
属性却完全不同。
虽然两者都会影响&#34;外部&#34;布局(即,MathML表达式如何适应其周围的上下文)类似地,它们最终是无关的,并且在冲突时可以以意想不到的方式进行交互。这可能并不令人惊讶,因为它们以完全不同的标准指定,并且它们的交互没有在任何地方指定;有关示例,请参阅最后的代码段。虽然SVG(HTML5中包含的另一种XML语言)正在从SVG和CSS工作组中看到积极的开发,但MathML不再处于积极开发阶段,因此未来不会与CSS保持一致。 / p>
重要的差异可能如下:
MathML的属性只有两个值(inline
和block
),而CSS提供a large variety of display
attributes;这主要是因为MathML与其上下文无关(因为它是一种XML语言)。这意味着您经常需要设置两个可能导致维护问题的值。
MathML的display
属性会影响表达式的内部布局。这是因为它会影响MathML的displaystyle
属性,导致例如可移动限制的排版方式不同;有关详细信息,请参阅https://www.w3.org/Math/draft-spec/mathml.html#chapter2_interf.toplevel.atts。
此外,对MathML的polyfill的需求使问题更加复杂,因为它们可能以不同方式处理交互(在使用按钮加载MathJax时,可以在下面的示例中看到)。由于没有指明任何内容,当然这里没有对错。
var button = document.getElementById('button');
var loadMathJax = function() {
script = document.createElement('script');
script.type = 'text/javascript';
script.src = 'https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.0/MathJax.js?config=MML_CHTML-full';
document.head.appendChild(script);
}
button.onclick = loadMathJax;
&#13;
<button id="button">Render with MathJax</button>
<h1>MathML inline, CSS inline</h1>
Hello <math xmlns="http://www.w3.org/1998/Math/MathML">
<msup>
<mrow>
<mo>(</mo>
<mrow>
<munderover>
<mo>∑<!-- ∑ --></mo>
<mrow class="MJX-TeXAtom-ORD">
<mi>k</mi>
<mo>=</mo>
<mn>1</mn>
</mrow>
<mi>n</mi>
</munderover>
<msub>
<mi>a</mi>
<mi>k</mi>
</msub>
<msub>
<mi>b</mi>
<mi>k</mi>
</msub>
</mrow>
<mo>)</mo>
</mrow>
<mrow class="MJX-TeXAtom-ORD">
<mn>2</mn>
</mrow>
</msup>
</math>
World.
<h1>MathML inline, CSS block</h1>
Hello.
<math style="display:block" xmlns="http://www.w3.org/1998/Math/MathML">
<msup>
<mrow>
<mo>(</mo>
<mrow>
<munderover>
<mo>∑<!-- ∑ --></mo>
<mrow class="MJX-TeXAtom-ORD">
<mi>k</mi>
<mo>=</mo>
<mn>1</mn>
</mrow>
<mi>n</mi>
</munderover>
<msub>
<mi>a</mi>
<mi>k</mi>
</msub>
<msub>
<mi>b</mi>
<mi>k</mi>
</msub>
</mrow>
<mo>)</mo>
</mrow>
<mrow class="MJX-TeXAtom-ORD">
<mn>2</mn>
</mrow>
</msup>
</math>
World.
<h1>MathML block, CSS inline</h1>
Hello <math display="block" style="display:inline" xmlns="http://www.w3.org/1998/Math/MathML">
<msup>
<mrow>
<mo>(</mo>
<mrow>
<munderover>
<mo>∑<!-- ∑ --></mo>
<mrow class="MJX-TeXAtom-ORD">
<mi>k</mi>
<mo>=</mo>
<mn>1</mn>
</mrow>
<mi>n</mi>
</munderover>
<msub>
<mi>a</mi>
<mi>k</mi>
</msub>
<msub>
<mi>b</mi>
<mi>k</mi>
</msub>
</mrow>
<mo>)</mo>
</mrow>
<mrow class="MJX-TeXAtom-ORD">
<mn>2</mn>
</mrow>
</msup>
</math>
World.
<h1>MathML inline with displaystyle, CSS inline</h1>
Hello <math xmlns="http://www.w3.org/1998/Math/MathML" displaystyle="true">
<msup>
<mrow>
<mo>(</mo>
<mrow>
<munderover>
<mo>∑<!-- ∑ --></mo>
<mrow class="MJX-TeXAtom-ORD">
<mi>k</mi>
<mo>=</mo>
<mn>1</mn>
</mrow>
<mi>n</mi>
</munderover>
<msub>
<mi>a</mi>
<mi>k</mi>
</msub>
<msub>
<mi>b</mi>
<mi>k</mi>
</msub>
</mrow>
<mo>)</mo>
</mrow>
<mrow class="MJX-TeXAtom-ORD">
<mn>2</mn>
</mrow>
</msup>
</math>
World.
<h1>MathML inline with displaystyle, CSS block</h1>
Hello.
<math style="display:block" displaystyle="true" xmlns="http://www.w3.org/1998/Math/MathML">
<msup>
<mrow>
<mo>(</mo>
<mrow>
<munderover>
<mo>∑<!-- ∑ --></mo>
<mrow class="MJX-TeXAtom-ORD">
<mi>k</mi>
<mo>=</mo>
<mn>1</mn>
</mrow>
<mi>n</mi>
</munderover>
<msub>
<mi>a</mi>
<mi>k</mi>
</msub>
<msub>
<mi>b</mi>
<mi>k</mi>
</msub>
</mrow>
<mo>)</mo>
</mrow>
<mrow class="MJX-TeXAtom-ORD">
<mn>2</mn>
</mrow>
</msup>
</math>
World.
<h1>MathML block without displaystyle, CSS inline</h1>
Hello <math display="block" displaystyle="false" style="display:inline" xmlns="http://www.w3.org/1998/Math/MathML">
<msup>
<mrow>
<mo>(</mo>
<mrow>
<munderover>
<mo>∑<!-- ∑ --></mo>
<mrow class="MJX-TeXAtom-ORD">
<mi>k</mi>
<mo>=</mo>
<mn>1</mn>
</mrow>
<mi>n</mi>
</munderover>
<msub>
<mi>a</mi>
<mi>k</mi>
</msub>
<msub>
<mi>b</mi>
<mi>k</mi>
</msub>
</mrow>
<mo>)</mo>
</mrow>
<mrow class="MJX-TeXAtom-ORD">
<mn>2</mn>
</mrow>
</msup>
</math>
World.
&#13;
答案 1 :(得分:0)
不,先生,他们完全相同,您可以查看Mozilla开发人员网络上的Math标签文档here