123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339 |
- /* This Source Code Form is subject to the terms of the Mozilla Public
- * License, v. 2.0. If a copy of the MPL was not distributed with this
- * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
- /**************************************************************************/
- /* namespace for MathML elements */
- /**************************************************************************/
- @namespace url(http://www.w3.org/1998/Math/MathML);
- /**************************************************************************/
- /* <math> - outermost math element */
- /**************************************************************************/
- math {
- writing-mode: horizontal-tb !important;
- direction: ltr;
- unicode-bidi: embed;
- display: inline;
- font-size: inherit;
- font-style: normal;
- font-family: serif;
- line-height: normal;
- word-spacing: normal;
- letter-spacing: normal;
- text-rendering: optimizeLegibility;
- -moz-float-edge: margin-box;
- -moz-math-display: inline;
- }
- math[mode="display"], math[display="block"] {
- display: block;
- text-align: -moz-center;
- -moz-math-display: block;
- }
- math[display="inline"] {
- display: inline;
- -moz-math-display: inline;
- }
- math[displaystyle="false"] {
- -moz-math-display: inline;
- }
- math[displaystyle="true"] {
- -moz-math-display: block;
- }
- /**************************************************************************/
- /* Token elements */
- /**************************************************************************/
- ms {
- display: inline;
- }
- ms:before, ms:after {
- content: "\0022"
- }
- ms[lquote]:before {
- content: attr(lquote)
- }
- ms[rquote]:after {
- content: attr(rquote)
- }
- /**************************************************************************/
- /* Links */
- /**************************************************************************/
- :any-link {
- text-decoration: none !important;
- }
- /**************************************************************************/
- /* attributes common to all tags */
- /**************************************************************************/
- /* These attributes are mapped to style in nsMathMLElement.cpp:
- - background -> background (deprecated)
- - color -> color (deprecated)
- - fontfamily -> font-family (deprecated)
- - fontsize -> font-size (deprecated)
- - fontstyle -> font-style (deprecated)
- - fontweight -> font-weight (deprecated)
- - mathvariant -> -moz-math-variant
- - scriptsizemultiplier -> -moz-script-size-multiplier
- - scriptminsize -> -moz-script-min-size
- - scriptlevel -> -moz-script-level
- - mathsize -> font-size
- - mathcolor -> color
- - mathbackground -> background
- */
- /**************************************************************************/
- /* merror */
- /**************************************************************************/
- merror {
- display: block;
- font-family: sans-serif;
- font-weight: bold;
- white-space: pre;
- margin: 1em;
- padding: 1em;
- border-width: thin;
- border-style: inset;
- border-color: red;
- font-size: 14pt;
- background-color: lightyellow;
- }
- /**************************************************************************/
- /* mtable and its related tags */
- /**************************************************************************/
- mtable {
- display: inline-table;
- border-collapse: separate;
- border-spacing: 0;
- text-indent: 0;
- }
- mtable[frame="none"] {
- border: none;
- }
- mtable[frame="solid"] {
- border: solid thin;
- }
- mtable[frame="dashed"] {
- border: dashed thin;
- }
- mtr, mlabeledtr {
- display: table-row;
- vertical-align: baseline;
- }
- mtd {
- display: table-cell;
- vertical-align: inherit;
- text-align: -moz-center;
- white-space: nowrap;
- }
- /* Don't support m(labeled)tr without mtable, nor mtd without m(labeled)tr */
- :not(mtable) > mtr,
- :not(mtable) > mlabeledtr,
- :not(mtr):not(mlabeledtr) > mtd {
- display: none !important;
- }
- /* Hide the label because mlabeledtr is not supported yet (bug 356870). This
- rule can be overriden by users. */
- mlabeledtr > mtd:first-child {
- display: none;
- }
- /**********************************************************************/
- /* rules to achieve the default spacing between cells. When rowspacing,
- columnspacing and framespacing aren't set on mtable. The back-end code
- will set the internal attributes depending on the cell's position.
- When they are set, the spacing behaviour is handled outside of CSS */
- mtd {
- padding-right: 0.4em; /* half of columnspacing[colindex] */
- padding-left: 0.4em; /* half of columnspacing[colindex-1] */
- padding-bottom: 0.5ex; /* half of rowspacing[rowindex] */
- padding-top: 0.5ex; /* half of rowspacing[rowindex-1] */
- }
- /* turn off the spacing at the periphery of boundary cells */
- mtr:first-child > mtd {
- padding-top: 0ex;
- }
- mtr:last-child > mtd {
- padding-bottom: 0ex;
- }
- mtd:first-child {
- padding-inline-start: 0em;
- }
- mtd:last-child {
- padding-inline-end: 0em;
- }
- /* re-instate the spacing if the table has a surrounding frame */
- mtable[frame="solid"] > mtr:first-child > mtd,
- mtable[frame="dashed"] > mtr:first-child > mtd {
- padding-top: 0.5ex; /* framespacing.top */
- }
- mtable[frame="solid"] > mtr:last-child > mtd,
- mtable[frame="dashed"] > mtr:last-child > mtd {
- padding-bottom: 0.5ex; /* framespacing.bottom */
- }
- mtable[frame="solid"] > mtr > mtd:first-child,
- mtable[frame="dashed"] > mtr > mtd:first-child {
- padding-inline-start: 0.4em; /* framespacing.left (or right in rtl)*/
- }
- mtable[frame="solid"] > mtr > mtd:last-child,
- mtable[frame="dashed"] > mtr > mtd:last-child {
- padding-inline-end: 0.4em; /* framespacing.right (or left in rtl)*/
- }
- mtable[rowspacing] > mtr > mtd,
- mtable[columnspacing] > mtr > mtd,
- mtable[framespacing] > mtr > mtd {
- /* Spacing handled outside of CSS */
- padding: 0px;
- }
- /**************************************************************************/
- /* This rule is used to give a style context suitable for nsMathMLChars.
- We don't actually style -moz-math-anonymous by default. */
- /*
- ::-moz-math-anonymous {
- }
- */
- /**********************************************************************/
- /* This is used when wrapping non-MathML inline elements inside math. */
- *|*::-moz-mathml-anonymous-block {
- display: inline-block !important;
- position: static !important;
- text-indent: 0;
- }
- /**************************************************************************/
- /* Controlling Displaystyle and Scriptlevel */
- /**************************************************************************/
- /*
- http://www.w3.org/Math/draft-spec/chapter3.html#presm.scriptlevel
- The determination of -moz-math-display for <math> involves the displaystyle
- and display attributes. See the <math> section above.
- */
- /*
- Map mstyle@displaystyle to -moz-math-display.
- */
- mstyle[displaystyle="false"] {
- -moz-math-display: inline;
- }
- mstyle[displaystyle="true"] {
- -moz-math-display: block;
- }
- /* munder, mover and munderover change the scriptlevels of their children
- using -moz-math-increment-script-level because regular CSS rules are
- insufficient to control when the scriptlevel should be incremented. All other
- cases can be described using regular CSS, so we do it this way because it's
- more efficient and less code. */
- :-moz-math-increment-script-level { -moz-script-level: +1; }
- /*
- The mfrac element sets displaystyle to "false", or if it was already false
- increments scriptlevel by 1, within numerator and denominator.
- */
- mfrac > * {
- -moz-script-level: auto;
- -moz-math-display: inline;
- }
- /*
- The mroot element increments scriptlevel by 2, and sets displaystyle to
- "false", within index, but leaves both attributes unchanged within base.
- The msqrt element leaves both attributes unchanged within its argument.
- */
- mroot > :not(:first-child) {
- -moz-script-level: +2;
- -moz-math-display: inline;
- }
- /*
- The msub element [...] increments scriptlevel by 1, and sets displaystyle to
- "false", within subscript, but leaves both attributes unchanged within base.
- The msup element [...] increments scriptlevel by 1, and sets displaystyle to
- "false", within superscript, but leaves both attributes unchanged within
- base.
- The msubsup element [...] increments scriptlevel by 1, and sets displaystyle
- to "false", within subscript and superscript, but leaves both attributes
- unchanged within base.
- The mmultiscripts element increments scriptlevel by 1, and sets displaystyle
- to "false", within each of its arguments except base, but leaves both
- attributes unchanged within base.
- */
- msub > :not(:first-child),
- msup > :not(:first-child),
- msubsup > :not(:first-child),
- mmultiscripts > :not(:first-child) {
- -moz-script-level: +1;
- -moz-math-display: inline;
- }
- /*
- The munder element [...] always sets displaystyle to "false" within the
- underscript, but increments scriptlevel by 1 only when accentunder is
- "false". Within base, it always leaves both attributes unchanged.
- The mover element [...] always sets displaystyle to "false" within
- overscript, but increments scriptlevel by 1 only when accent is "false".
- Within base, it always leaves both attributes unchanged.
- The munderover [..] always sets displaystyle to "false" within underscript
- and overscript, but increments scriptlevel by 1 only when accentunder or
- accent, respectively, are "false". Within base, it always leaves both
- attributes unchanged.
- */
- munder > :not(:first-child),
- mover > :not(:first-child),
- munderover > :not(:first-child) {
- -moz-math-display: inline;
- }
- /*
- The displaystyle attribute is allowed on the mtable element to set the
- inherited value of the attribute. If the attribute is not present, the
- mtable element sets displaystyle to "false" within the table elements.
- */
- mtable { -moz-math-display: inline; }
- mtable[displaystyle="true"] { -moz-math-display: block; }
- /*
- The mscarries element sets displaystyle to "false", and increments
- scriptlevel by 1, so the children are typically displayed in a smaller font.
- XXXfredw: This element is not implemented yet. See bug 534967.
- mscarries {
- -moz-script-level: +1;
- -moz-math-display: inline;
- }
- */
- /* "The mphantom element renders invisibly, but with the same size and other
- dimensions, including baseline position, that its contents would have if
- they were rendered normally.".
- Also, we do not expose the <mphantom> element to the accessible tree
- (see bug 1108378). */
- mphantom {
- visibility: hidden;
- }
|