зеркало из https://github.com/mozilla/gecko-dev.git
329 строки
10 KiB
CSS
329 строки
10 KiB
CSS
/* 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 */
|
|
/* Put Cambria before Cambria Math as Cambria Math has neither bold nor */
|
|
/* italic. */
|
|
/**************************************************************************/
|
|
|
|
math {
|
|
direction: ltr;
|
|
unicode-bidi: embed;
|
|
display: inline;
|
|
font-size: inherit;
|
|
font-style: normal;
|
|
font-family: MathJax_Main, STIXGeneral, DejaVu Serif, DejaVu Sans, Cambria, Cambria Math, Times, Lucida Sans Unicode, OpenSymbol, Standard Symbols L, serif;
|
|
text-rendering: optimizeLegibility;
|
|
-moz-float-edge: margin-box;
|
|
}
|
|
math[mode="display"], math[display="block"] {
|
|
display: block;
|
|
text-align: -moz-center;
|
|
}
|
|
math[display="inline"] {
|
|
display: inline;
|
|
}
|
|
|
|
/**************************************************************************/
|
|
/* Token elements */
|
|
/**************************************************************************/
|
|
|
|
ms {
|
|
display: inline;
|
|
}
|
|
ms:before, ms:after {
|
|
content: "\0022"
|
|
}
|
|
ms[lquote]:before {
|
|
content: attr(lquote)
|
|
}
|
|
ms[rquote]:after {
|
|
content: attr(rquote)
|
|
}
|
|
|
|
/**************************************************************************/
|
|
/* Links */
|
|
/**************************************************************************/
|
|
:-moz-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;
|
|
}
|
|
|
|
/***********************/
|
|
/* -- mtd: columnalign */
|
|
|
|
mtd[_moz-math-columnalign="left"],
|
|
mtd[columnalign="left"] {
|
|
text-align: left;
|
|
}
|
|
mtd[_moz-math-columnalign="right"],
|
|
mtd[columnalign="right"] {
|
|
text-align: right;
|
|
}
|
|
mtd[_moz-math-columnalign="center"],
|
|
mtd[columnalign="center"] {
|
|
text-align: -moz-center;
|
|
}
|
|
|
|
/*************************/
|
|
/* -- mtr, mtd: rowalign */
|
|
|
|
mtr[_moz-math-rowalign="top"],
|
|
mtr[rowalign="top"],
|
|
mtd[rowalign="top"] {
|
|
vertical-align: top;
|
|
}
|
|
mtr[_moz-math-rowalign="bottom"],
|
|
mtr[rowalign="bottom"],
|
|
mtd[rowalign="bottom"] {
|
|
vertical-align: bottom;
|
|
}
|
|
mtr[_moz-math-rowalign="center"],
|
|
mtr[rowalign="center"],
|
|
mtd[rowalign="center"] {
|
|
vertical-align: middle;
|
|
}
|
|
mtr[_moz-math-rowalign="baseline"],
|
|
mtr[rowalign="baseline"],
|
|
mtd[rowalign="baseline"] {
|
|
vertical-align: baseline;
|
|
}
|
|
/* -- not yet supported --
|
|
mtr[_moz-math-rowalign="axis"],
|
|
mtr[rowalign="axis"],
|
|
mtd[rowalign="axis"] {
|
|
vertical-align: mathline;
|
|
}
|
|
*/
|
|
|
|
/**********************************************************************/
|
|
/* rules to achieve the default spacing between cells. The back-end code
|
|
will set the internal attributes depending on the cell's position.
|
|
These rules are hard-coded, the comments indicate what would be
|
|
desirable if the style data could be changed on the fly to pick
|
|
the values that users may set with the attributes of <mtable> */
|
|
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-left: 0em;
|
|
}
|
|
mtd:last-child {
|
|
padding-right: 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-left: 0.4em; /* framespacing.left */
|
|
}
|
|
mtable[frame="solid"] > mtr > mtd:last-child,
|
|
mtable[frame="dashed"] > mtr > mtd:last-child {
|
|
padding-right: 0.4em; /* framespacing.right */
|
|
}
|
|
|
|
/**********************************************************************/
|
|
/* internal settings to support 'rowlines' and 'columnlines'. To
|
|
achieve the recommended behavior, the back-end code will avoid setting
|
|
unsuitable rules on the cells on the first row and the first column.
|
|
In general, however, authors can use the 'border' property of CSS to
|
|
achieve varying effects down to the level of the table cell. */
|
|
mtr[_moz-math-rowline="none"] > mtd {
|
|
border-top: none;
|
|
}
|
|
mtr[_moz-math-rowline="solid"] > mtd {
|
|
border-top: solid thin;
|
|
}
|
|
mtr[_moz-math-rowline="dashed"] > mtd {
|
|
border-top: dashed thin;
|
|
}
|
|
mtd[_moz-math-columnline="none"] {
|
|
border-left: none;
|
|
}
|
|
mtd[_moz-math-columnline="solid"] {
|
|
border-left: solid thin;
|
|
}
|
|
mtd[_moz-math-columnline="dashed"] {
|
|
border-left: dashed thin;
|
|
}
|
|
|
|
|
|
/**************************************************************************/
|
|
/* Style used for stretchy symbols *must* be normal to avoid misaligments */
|
|
/* By leaving the font-family empty, the MathML engine will use the value
|
|
provided by the mathfont-family property in the mathfont.properties file
|
|
or the value of the user's pref("font.mathfont-family", "...").
|
|
|
|
Authors can make elements on a document to be stretched with different
|
|
fonts, e.g.,
|
|
|
|
To request the use of STIX fonts, you can add a <style>...</style> with:
|
|
<mo myfonts="stix">...</mo> with the associated CSS declaration
|
|
mo[myfonts="stix"]::-moz-math-stretchy {
|
|
font-family: STIXNonUnicode, STIXSizeOneSym, STIXSize1, STIXGeneral;
|
|
}
|
|
|
|
To request the use of Asana fonts, you can add a <style>...</style> with:
|
|
<mo myfonts="asana">...</mo> with the associated CSS declaration
|
|
mo[myfonts="asana"]::-moz-math-stretchy {
|
|
font-family: Asana Math;
|
|
}
|
|
|
|
Of course, if you just want all of the stretchy characters in your
|
|
document to be stretched with your preferred list, you can just do:
|
|
::-moz-math-stretchy {
|
|
font-family: [your-particular-list]
|
|
}
|
|
|
|
Note that like other fonts in the document, users can override this by
|
|
clicking the pref to override document fonts.
|
|
/**************************************************************************/
|
|
|
|
::-moz-math-stretchy {
|
|
font-style: normal;
|
|
font-family: serif; /* an empty family is ignored as an error and behaves like inherit */
|
|
/* background-color: #3C6; */
|
|
}
|
|
/* 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 scriptlevel */
|
|
/*****************************************/
|
|
|
|
/* mfrac, 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 */
|
|
:-moz-math-increment-script-level { -moz-script-level:+1; }
|
|
|
|
/* all other cases can be described using regular CSS, so we do it this way because it's
|
|
more efficient and less code */
|
|
mroot > :not(:first-child) { -moz-script-level:+2; }
|
|
|
|
msub > :not(:first-child),
|
|
msup > :not(:first-child),
|
|
msubsup > :not(:first-child),
|
|
mmultiscripts > :not(:first-child) { -moz-script-level:+1; }
|