Template:Fraction/styles.css

/* */ /** * Resulting Template:sfrac code with all 3 parameters provided, indentation added: * *    *      &#x2064; *     +  *       *          *        /  *          *       *     * *    .sfrac.nowrap *   > .int *   > .plus.visualhide *   > .tion *     > .num *     > .slash.visualhide *     > .den * * Resulting Template:sfrac code with just 1 or 2 parameters provided, indentation added: * *    *        *      /  *        *     * *    .sfrac.tion.nowrap *   > .num *   > .slash.visualhide *   > .den */

/** * Stacked Fractions * - * * - default for Template:sfrac *  and for Template:frac inside Template:math or Template:bigmath * - opt-in with .stacked set on any ancestor or with the parameter * - opt-out with .vulgar set on any ancestor or with the parameter */

/** stacked container */ /* with integer */ .stacked .frac>.tion /* opt-in */, .stacked.frac>.tion, .texhtml .frac>.tion /* context */, .math   .frac>.tion, .sfrac>.tion /* default */, /* without integer */ .stacked .frac.tion /* opt-in */, .stacked.frac.tion, .texhtml .frac.tion /* context */, .math   .frac.tion, .sfrac.tion /* default */ { display: inline-block; vertical-align: -0.6em; /* = -0.51 parent-em */ font-size: 85%; /* should this be 83.3%? to make vertical alignment max. 0.5 parent-em */ text-align: center; }

/** stacked numerator */ .stacked .frac sup /* opt-in */, .stacked.frac .num, .stacked .frac sup, .stacked.frac .num, .texhtml .frac sup /* context */, .texhtml .frac .num, .math   .frac sup, .math   .frac .num, span.sfrac .num /* default */, /** stacked denominator */ .stacked .frac sub /* opt-in */, .stacked.frac .den, .stacked .frac sub, .stacked.frac .den, .texhtml .frac sub /* context */, .texhtml .frac .den, .math   .frac sub, .math   .frac .den, .sfrac .den /* default */ { display: block; margin: 0 0.1em; /* should this be padding? */ line-height: 1em; }

/** reset default and styling */ .stacked .frac sup /* opt-in */, .stacked.frac sup, .stacked .frac sub, .stacked.frac sub, .texhtml .frac sup /* context */, .texhtml .frac sub, .math   .frac sup, .math   .frac sub { vertical-align: baseline; /* may be 'super' or 'sub', respectively */ position: static; /* may be 'relative' */ font-size: 1em; /* overrides 80% from selector '.mw-body-content sub/p' in MediaWiki:Common.css, inherits 85% of outer font size */ }

/** stacked fraction line above denominator */ .stacked .frac sub /* opt-in */, .stacked .frac .den, .math   .frac sub  /* context */, .texhtml .frac sub, .texhtml .frac .den, .math   .frac .den, .sfrac .den /* default */ { border-top: 1px solid; }

/** * Vulgar Fractions * * * - default for Template:frac * - opt-in with .vulgar set on any ancestor or with the parameter * - opt-out with .stacked set on any ancestor or with the parameter */

/** unhide vulgar fraction slash */ .vulgar .sfrac .slash.visualhide /* opt-in */, .vulgar.sfrac .slash.visualhide, .frac .slash.visualhide /* default */ { /* reset everything that .visualhide from MediaWiki:Common.css does */ position: static /* absolute */; left: 0 /* -10000px*/; top: 0 /* auto */; width: auto /* 1px */; height: auto /* 1px */; overflow: visible /* hidden */; }

/** avoid line above denominator */ .vulgar .sfrac .den /* opt-in */, .vulgar.sfrac .den, .frac .den /* default */, .frac sub { border-top: none; }

.vulgar .sfrac>.tion /* opt-in, with integer */, .vulgar.sfrac>.tion, .vulgar .sfrac.tion /* opt-in, without integer */, .vulgar.sfrac.tion { display: inline; vertical-align: baseline; font-size: 1em; text-align: inherit; }

/** * Fancy vulgar fractions * -- * * - always requires opt-in */

/** enable smart-font features */ .stacked .fancy .frac /* double opt-in */, .stacked.fancy .frac, .stacked .fancy.frac, .fancy .stacked.frac, .fancy .stacked .frac, .fancy.stacked.frac, .fancy .sfrac /* opt-in */, .fancy.sfrac, .sfrac /* default */ { font-variant-numeric: stacked-fractions; } .vulgar .fancy .sfrac /* double opt-in */, .vulgar.fancy .sfrac, .vulgar .fancy.sfrac, .fancy .vulgar.sfrac, .fancy .vulgar .sfrac, .fancy.vulgar.sfrac, .fancy .frac /* opt-in */, .fancy.frac, .frac /* default */ { font-variant-numeric: diagonal-fractions; }

/* remove stacking */ .fancy .sfrac>.tion[title] /* opt-in, with integer */, .fancy.sfrac>.tion[title], .fancy .sfrac.tion[title] /* opt-in, without integer */, .fancy.sfrac.tion[title] { display: inline; vertical-align: baseline; font-size: 1em; text-align: inherit; } /* remove all children of .tion except integer */ .fancy .sfrac>.tion[title]>* /* opt-in, with integer */, .fancy .frac>.tion[title]>*, .fancy.sfrac>.tion[title]>*, .fancy.frac>.tion[title]>*, .fancy .sfrac.tion[title]>* /* opt-in, without integer */, .fancy .frac.tion[title]>*, .fancy.sfrac.tion[title]>*, .fancy.frac.tion[title]>* { display: none; } /* insert fancy character(s) stored by the template in .tion[title] */ .fancy .sfrac>.tion[title]::before /* opt-in, with integer */, .fancy .frac>.tion[title]::before, .fancy.sfrac>.tion[title]::before, .fancy.frac>.tion[title]::before, .fancy .sfrac.tion[title]::before /* opt-in, without integer */, .fancy .frac.tion[title]::before, .fancy.sfrac.tion[title]::before, .fancy.frac.tion[title]::before { content: attr(title); }

/** invisible plus sign U+2064 */ /* remove normal plus sign or space */ .fancy .sfrac .plus /* opt-in */, .fancy .frac .plus, .fancy.sfrac .plus, .fancy.frac .plus { display: none; } /* insert invisible Unicode character */ .fancy .sfrac .int::after /* opt-in */, .fancy .frac .int::after, .fancy.sfrac .int::after, .fancy.frac .int::after { content: "\2064"; }