之间有什么区别
<math display="inline"></math>
和
<math style="display: inline;"></math>
?
谢谢!
虽然display="inline"
并且style="display:inline"
通常具有相似的行为,但MathML的display
属性和CSS的display
属性是非常不同的东西。
虽然两者都应类似地影响“外部”布局(即MathML表达式如何适应其周围的上下文),但它们最终是无关的,并且在发生冲突时可能以意外的方式进行交互。这也许不足为奇,因为它们是在完全不同的标准中指定的,并且它们的交互作用在任何地方都没有指定。有关某些示例,请参见最后的代码段。SVG(HTML5中包含的另一种XML语言)正在寻求SVG和CSS工作组的积极开发来协调一致,而MathML不再处于积极开发中,因此将来不会与CSS保持一致。
重要区别可能如下:
MathML的属性只有两个值(inline
和block
),而CSS提供了多种display
属性;这主要是由于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;
<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.
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句