summaryrefslogtreecommitdiffstats
path: root/WebCore/css
diff options
context:
space:
mode:
Diffstat (limited to 'WebCore/css')
-rw-r--r--WebCore/css/CSSComputedStyleDeclaration.cpp8
-rw-r--r--WebCore/css/CSSFontFaceSource.cpp13
-rw-r--r--WebCore/css/CSSFontSelector.h3
-rw-r--r--WebCore/css/CSSHelper.h4
-rw-r--r--WebCore/css/CSSOMUtils.h3
-rw-r--r--WebCore/css/CSSParser.cpp5
-rw-r--r--WebCore/css/CSSPrimitiveValue.h2
-rw-r--r--WebCore/css/CSSPropertyNames.in1
-rw-r--r--WebCore/css/CSSSelector.cpp15
-rw-r--r--WebCore/css/CSSStyleSelector.cpp16
-rw-r--r--WebCore/css/MediaList.h2
-rw-r--r--WebCore/css/SVGCSSComputedStyleDeclaration.cpp23
-rw-r--r--WebCore/css/SVGCSSStyleSelector.cpp26
-rw-r--r--WebCore/css/StyleBase.h2
-rw-r--r--WebCore/css/StyleMedia.cpp3
-rw-r--r--WebCore/css/StyleSheetList.h2
-rw-r--r--WebCore/css/WebKitCSSKeyframesRule.h2
-rw-r--r--WebCore/css/mathml.css46
18 files changed, 128 insertions, 48 deletions
diff --git a/WebCore/css/CSSComputedStyleDeclaration.cpp b/WebCore/css/CSSComputedStyleDeclaration.cpp
index 44ff1fc..6bb025d 100644
--- a/WebCore/css/CSSComputedStyleDeclaration.cpp
+++ b/WebCore/css/CSSComputedStyleDeclaration.cpp
@@ -925,9 +925,13 @@ PassRefPtr<CSSValue> CSSComputedStyleDeclaration::getPropertyCSSValue(int proper
case CSSPropertyWebkitHyphens:
return CSSPrimitiveValue::create(style->hyphens());
case CSSPropertyWebkitHyphenateCharacter:
- if (style->hyphenateCharacter().isNull())
+ if (style->hyphenationString().isNull())
return CSSPrimitiveValue::createIdentifier(CSSValueAuto);
- return CSSPrimitiveValue::create(style->hyphenateCharacter(), CSSPrimitiveValue::CSS_STRING);
+ return CSSPrimitiveValue::create(style->hyphenationString(), CSSPrimitiveValue::CSS_STRING);
+ case CSSPropertyWebkitHyphenateLocale:
+ if (style->hyphenationLocale().isNull())
+ return CSSPrimitiveValue::createIdentifier(CSSValueAuto);
+ return CSSPrimitiveValue::create(style->hyphenationLocale(), CSSPrimitiveValue::CSS_STRING);
case CSSPropertyWebkitBorderFit:
if (style->borderFit() == BorderFitBorder)
return CSSPrimitiveValue::createIdentifier(CSSValueBorder);
diff --git a/WebCore/css/CSSFontFaceSource.cpp b/WebCore/css/CSSFontFaceSource.cpp
index 00dfcba..01b5569 100644
--- a/WebCore/css/CSSFontFaceSource.cpp
+++ b/WebCore/css/CSSFontFaceSource.cpp
@@ -1,5 +1,5 @@
/*
- * Copyright (C) 2007, 2008 Apple Inc. All rights reserved.
+ * Copyright (C) 2007, 2008, 2010 Apple Inc. All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions
@@ -36,9 +36,7 @@
#include "SimpleFontData.h"
#if ENABLE(SVG_FONTS)
-#if !PLATFORM(WX)
#include "FontCustomPlatformData.h"
-#endif
#include "HTMLNames.h"
#include "SVGFontData.h"
#include "SVGFontElement.h"
@@ -155,8 +153,7 @@ SimpleFontData* CSSFontFaceSource::getFontData(const FontDescription& fontDescri
m_svgFontFaceElement = fontFaceElement;
}
- SVGFontData* svgFontData = new SVGFontData(fontFaceElement);
- fontData.set(new SimpleFontData(m_font->platformDataFromCustomData(fontDescription.computedPixelSize(), syntheticBold, syntheticItalic, fontDescription.renderingMode()), true, false, svgFontData));
+ fontData.set(new SimpleFontData(adoptPtr(new SVGFontData(fontFaceElement)), fontDescription.computedPixelSize(), syntheticBold, syntheticItalic));
}
} else
#endif
@@ -170,10 +167,8 @@ SimpleFontData* CSSFontFaceSource::getFontData(const FontDescription& fontDescri
} else {
#if ENABLE(SVG_FONTS)
// In-Document SVG Fonts
- if (m_svgFontFaceElement) {
- SVGFontData* svgFontData = new SVGFontData(m_svgFontFaceElement);
- fontData.set(new SimpleFontData(FontPlatformData(fontDescription.computedPixelSize(), syntheticBold, syntheticItalic), true, false, svgFontData));
- }
+ if (m_svgFontFaceElement)
+ fontData.set(new SimpleFontData(adoptPtr(new SVGFontData(m_svgFontFaceElement)), fontDescription.computedPixelSize(), syntheticBold, syntheticItalic));
#endif
}
} else {
diff --git a/WebCore/css/CSSFontSelector.h b/WebCore/css/CSSFontSelector.h
index af454bd..d9cce1c 100644
--- a/WebCore/css/CSSFontSelector.h
+++ b/WebCore/css/CSSFontSelector.h
@@ -28,19 +28,18 @@
#include "FontSelector.h"
#include "StringHash.h"
+#include <wtf/Forward.h>
#include <wtf/HashMap.h>
#include <wtf/RefPtr.h>
namespace WebCore {
-class AtomicString;
class CSSFontFace;
class CSSFontFaceRule;
class CSSSegmentedFontFace;
class Document;
class DocLoader;
class FontDescription;
-class String;
class CSSFontSelector : public FontSelector {
public:
diff --git a/WebCore/css/CSSHelper.h b/WebCore/css/CSSHelper.h
index 2e33377..331815e 100644
--- a/WebCore/css/CSSHelper.h
+++ b/WebCore/css/CSSHelper.h
@@ -22,9 +22,9 @@
#ifndef CSSHelper_h
#define CSSHelper_h
-namespace WebCore {
+#include <wtf/Forward.h>
- class String;
+namespace WebCore {
// Used in many inappropriate contexts throughout WebCore. We'll have to examine and test
// each call site to find out whether it needs the various things this function does. That
diff --git a/WebCore/css/CSSOMUtils.h b/WebCore/css/CSSOMUtils.h
index 6602b35..749cb25 100644
--- a/WebCore/css/CSSOMUtils.h
+++ b/WebCore/css/CSSOMUtils.h
@@ -31,6 +31,7 @@
#ifndef CSSOMUtils_h
#define CSSOMUtils_h
+#include <wtf/Forward.h>
#include <wtf/Vector.h>
#include <wtf/unicode/Unicode.h>
@@ -38,8 +39,6 @@
namespace WebCore {
-class String;
-
// Common serializing methods. See: http://dev.w3.org/csswg/cssom/#common-serializing-idioms
void serializeCharacter(UChar32, Vector<UChar>& appendTo);
void serializeCharacterAsCodePoint(UChar32, Vector<UChar>& appendTo);
diff --git a/WebCore/css/CSSParser.cpp b/WebCore/css/CSSParser.cpp
index 645e354..a084474 100644
--- a/WebCore/css/CSSParser.cpp
+++ b/WebCore/css/CSSParser.cpp
@@ -1628,6 +1628,11 @@ bool CSSParser::parseValue(int propId, bool important)
validPrimitive = true;
break;
+ case CSSPropertyWebkitHyphenateLocale:
+ if (id == CSSValueAuto || value->unit == CSSPrimitiveValue::CSS_STRING)
+ validPrimitive = true;
+ break;
+
case CSSPropertyWebkitBorderFit:
if (id == CSSValueBorder || id == CSSValueLines)
validPrimitive = true;
diff --git a/WebCore/css/CSSPrimitiveValue.h b/WebCore/css/CSSPrimitiveValue.h
index a71c8c6..b11c7f0 100644
--- a/WebCore/css/CSSPrimitiveValue.h
+++ b/WebCore/css/CSSPrimitiveValue.h
@@ -24,6 +24,7 @@
#include "CSSValue.h"
#include "Color.h"
+#include <wtf/Forward.h>
#include <wtf/PassRefPtr.h>
namespace WebCore {
@@ -34,7 +35,6 @@ class Pair;
class RGBColor;
class Rect;
class RenderStyle;
-class StringImpl;
struct Length;
diff --git a/WebCore/css/CSSPropertyNames.in b/WebCore/css/CSSPropertyNames.in
index 44216e0..1a79602 100644
--- a/WebCore/css/CSSPropertyNames.in
+++ b/WebCore/css/CSSPropertyNames.in
@@ -217,6 +217,7 @@ z-index
-webkit-font-smoothing
-webkit-highlight
-webkit-hyphenate-character
+-webkit-hyphenate-locale
-webkit-hyphens
-webkit-line-break
-webkit-line-clamp
diff --git a/WebCore/css/CSSSelector.cpp b/WebCore/css/CSSSelector.cpp
index facce83..03974d9 100644
--- a/WebCore/css/CSSSelector.cpp
+++ b/WebCore/css/CSSSelector.cpp
@@ -34,7 +34,7 @@
#include <wtf/Vector.h>
namespace WebCore {
-
+
using namespace HTMLNames;
class CSSSelectorBag : public Noncopyable {
@@ -713,8 +713,11 @@ String CSSSelector::selectorText() const
if (m_match == CSSSelector::None || !prefix.isNull() || localName != starAtom) {
if (prefix.isNull())
str = localName;
- else
- str = prefix + "|" + localName;
+ else {
+ str = prefix.string();
+ str.append("|");
+ str.append(localName);
+ }
}
const CSSSelector* cs = this;
@@ -746,8 +749,10 @@ String CSSSelector::selectorText() const
} else if (cs->hasAttribute()) {
str += "[";
const AtomicString& prefix = cs->attribute().prefix();
- if (!prefix.isNull())
- str += prefix + "|";
+ if (!prefix.isNull()) {
+ str.append(prefix);
+ str.append("|");
+ }
str += cs->attribute().localName();
switch (cs->m_match) {
case CSSSelector::Exact:
diff --git a/WebCore/css/CSSStyleSelector.cpp b/WebCore/css/CSSStyleSelector.cpp
index 6f64235..40b11d9 100644
--- a/WebCore/css/CSSStyleSelector.cpp
+++ b/WebCore/css/CSSStyleSelector.cpp
@@ -2517,7 +2517,7 @@ bool CSSStyleSelector::SelectorChecker::checkOneSelector(CSSSelector* sel, Eleme
break;
}
case CSSSelector::PseudoFocus:
- if (e && e->focused() && e->document()->frame()->selection()->isFocusedAndActive())
+ if (e && e->focused() && e->document()->frame() && e->document()->frame()->selection()->isFocusedAndActive())
return true;
break;
case CSSSelector::PseudoHover: {
@@ -5215,11 +5215,19 @@ void CSSStyleSelector::applyProperty(int id, CSSValue *value)
return;
}
case CSSPropertyWebkitHyphenateCharacter: {
- HANDLE_INHERIT_AND_INITIAL(hyphenateCharacter, HyphenateCharacter);
+ HANDLE_INHERIT_AND_INITIAL(hyphenationString, HyphenationString);
if (primitiveValue->getIdent() == CSSValueAuto)
- m_style->setHyphenateCharacter(nullAtom);
+ m_style->setHyphenationString(nullAtom);
else
- m_style->setHyphenateCharacter(primitiveValue->getStringValue());
+ m_style->setHyphenationString(primitiveValue->getStringValue());
+ return;
+ }
+ case CSSPropertyWebkitHyphenateLocale: {
+ HANDLE_INHERIT_AND_INITIAL(hyphenationLocale, HyphenationLocale);
+ if (primitiveValue->getIdent() == CSSValueAuto)
+ m_style->setHyphenationLocale(nullAtom);
+ else
+ m_style->setHyphenationLocale(primitiveValue->getStringValue());
return;
}
case CSSPropertyWebkitBorderFit: {
diff --git a/WebCore/css/MediaList.h b/WebCore/css/MediaList.h
index f1eb0c0..e91ca9d 100644
--- a/WebCore/css/MediaList.h
+++ b/WebCore/css/MediaList.h
@@ -22,6 +22,7 @@
#define MediaList_h
#include "StyleBase.h"
+#include <wtf/Forward.h>
#include <wtf/PassRefPtr.h>
#include <wtf/Vector.h>
@@ -30,7 +31,6 @@ namespace WebCore {
class CSSImportRule;
class CSSStyleSheet;
class MediaQuery;
-class String;
typedef int ExceptionCode;
diff --git a/WebCore/css/SVGCSSComputedStyleDeclaration.cpp b/WebCore/css/SVGCSSComputedStyleDeclaration.cpp
index 00cb308..410eede 100644
--- a/WebCore/css/SVGCSSComputedStyleDeclaration.cpp
+++ b/WebCore/css/SVGCSSComputedStyleDeclaration.cpp
@@ -46,6 +46,19 @@ static PassRefPtr<CSSPrimitiveValue> glyphOrientationToCSSPrimitiveValue(EGlyphO
}
}
+static PassRefPtr<CSSValue> strokeDashArrayToCSSValueList(const Vector<SVGLength>& dashes)
+{
+ if (dashes.isEmpty())
+ return CSSPrimitiveValue::createIdentifier(CSSValueNone);
+
+ RefPtr<CSSValueList> list = CSSValueList::createCommaSeparated();
+ const Vector<SVGLength>::const_iterator end = dashes.end();
+ for (Vector<SVGLength>::const_iterator it = dashes.begin(); it != end; ++it)
+ list->append(SVGLength::toCSSPrimitiveValue(*it));
+
+ return list.release();
+}
+
PassRefPtr<CSSValue> CSSComputedStyleDeclaration::getSVGPropertyCSSValue(int propertyID, EUpdateLayout updateLayout) const
{
Node* node = m_node.get();
@@ -122,7 +135,7 @@ PassRefPtr<CSSValue> CSSComputedStyleDeclaration::getSVGPropertyCSSValue(int pro
case CSSPropertyFill:
return svgStyle->fillPaint();
case CSSPropertyKerning:
- return svgStyle->kerning();
+ return SVGLength::toCSSPrimitiveValue(svgStyle->kerning());
case CSSPropertyMarkerEnd:
if (!svgStyle->markerEndResource().isEmpty())
return CSSPrimitiveValue::create(svgStyle->markerEndResource(), CSSPrimitiveValue::CSS_URI);
@@ -138,11 +151,11 @@ PassRefPtr<CSSValue> CSSComputedStyleDeclaration::getSVGPropertyCSSValue(int pro
case CSSPropertyStroke:
return svgStyle->strokePaint();
case CSSPropertyStrokeDasharray:
- return svgStyle->strokeDashArray();
+ return strokeDashArrayToCSSValueList(svgStyle->strokeDashArray());
case CSSPropertyStrokeDashoffset:
- return svgStyle->strokeDashOffset();
+ return SVGLength::toCSSPrimitiveValue(svgStyle->strokeDashOffset());
case CSSPropertyStrokeWidth:
- return svgStyle->strokeWidth();
+ return SVGLength::toCSSPrimitiveValue(svgStyle->strokeWidth());
case CSSPropertyBaselineShift: {
switch (svgStyle->baselineShift()) {
case BS_BASELINE:
@@ -152,7 +165,7 @@ PassRefPtr<CSSValue> CSSComputedStyleDeclaration::getSVGPropertyCSSValue(int pro
case BS_SUB:
return CSSPrimitiveValue::createIdentifier(CSSValueSub);
case BS_LENGTH:
- return svgStyle->baselineShiftValue();
+ return SVGLength::toCSSPrimitiveValue(svgStyle->baselineShiftValue());
}
}
case CSSPropertyGlyphOrientationHorizontal:
diff --git a/WebCore/css/SVGCSSStyleSelector.cpp b/WebCore/css/SVGCSSStyleSelector.cpp
index 3b38890..b8cc4f7 100644
--- a/WebCore/css/SVGCSSStyleSelector.cpp
+++ b/WebCore/css/SVGCSSStyleSelector.cpp
@@ -153,7 +153,7 @@ void CSSStyleSelector::applySVGProperty(int id, CSSValue* value)
}
} else {
svgstyle->setBaselineShift(BS_LENGTH);
- svgstyle->setBaselineShiftValue(primitiveValue);
+ svgstyle->setBaselineShiftValue(SVGLength::fromCSSPrimitiveValue(primitiveValue));
}
break;
@@ -161,7 +161,7 @@ void CSSStyleSelector::applySVGProperty(int id, CSSValue* value)
case CSSPropertyKerning:
{
HANDLE_INHERIT_AND_INITIAL(kerning, Kerning);
- svgstyle->setKerning(primitiveValue);
+ svgstyle->setKerning(SVGLength::fromCSSPrimitiveValue(primitiveValue));
break;
}
case CSSPropertyDominantBaseline:
@@ -247,21 +247,35 @@ void CSSStyleSelector::applySVGProperty(int id, CSSValue* value)
{
HANDLE_INHERIT_AND_INITIAL(strokeWidth, StrokeWidth)
if (primitiveValue)
- svgstyle->setStrokeWidth(primitiveValue);
+ svgstyle->setStrokeWidth(SVGLength::fromCSSPrimitiveValue(primitiveValue));
break;
}
case CSSPropertyStrokeDasharray:
{
HANDLE_INHERIT_AND_INITIAL(strokeDashArray, StrokeDashArray)
- if (value->isValueList())
- svgstyle->setStrokeDashArray(static_cast<CSSValueList*>(value));
+ if (!value->isValueList())
+ break;
+
+ CSSValueList* dashes = static_cast<CSSValueList*>(value);
+
+ Vector<SVGLength> array;
+ size_t length = dashes->length();
+ for (size_t i = 0; i < length; ++i) {
+ CSSPrimitiveValue* dash = static_cast<CSSPrimitiveValue*>(dashes->itemWithoutBoundsCheck(i));
+ if (!dash)
+ continue;
+
+ array.append(SVGLength::fromCSSPrimitiveValue(dash));
+ }
+
+ svgstyle->setStrokeDashArray(array);
break;
}
case CSSPropertyStrokeDashoffset:
{
HANDLE_INHERIT_AND_INITIAL(strokeDashOffset, StrokeDashOffset)
if (primitiveValue)
- svgstyle->setStrokeDashOffset(primitiveValue);
+ svgstyle->setStrokeDashOffset(SVGLength::fromCSSPrimitiveValue(primitiveValue));
break;
}
case CSSPropertyFillOpacity:
diff --git a/WebCore/css/StyleBase.h b/WebCore/css/StyleBase.h
index 521ee5d..a53b2c5 100644
--- a/WebCore/css/StyleBase.h
+++ b/WebCore/css/StyleBase.h
@@ -23,11 +23,11 @@
#ifndef StyleBase_h
#define StyleBase_h
+#include <wtf/Forward.h>
#include <wtf/RefCounted.h>
namespace WebCore {
- class String;
class StyleSheet;
class KURL;
diff --git a/WebCore/css/StyleMedia.cpp b/WebCore/css/StyleMedia.cpp
index 6cb662f..8971d35 100644
--- a/WebCore/css/StyleMedia.cpp
+++ b/WebCore/css/StyleMedia.cpp
@@ -56,7 +56,8 @@ bool StyleMedia::matchMedium(const String& query) const
Document* document = m_frame->document();
ASSERT(document);
Element* documentElement = document->documentElement();
- ASSERT(documentElement);
+ if (!documentElement)
+ return false;
CSSStyleSelector* styleSelector = document->styleSelector();
if (!styleSelector)
diff --git a/WebCore/css/StyleSheetList.h b/WebCore/css/StyleSheetList.h
index ecdc1cf..a486511 100644
--- a/WebCore/css/StyleSheetList.h
+++ b/WebCore/css/StyleSheetList.h
@@ -21,6 +21,7 @@
#ifndef StyleSheetList_h
#define StyleSheetList_h
+#include <wtf/Forward.h>
#include <wtf/RefCounted.h>
#include <wtf/PassRefPtr.h>
#include <wtf/Vector.h>
@@ -30,7 +31,6 @@ namespace WebCore {
class Document;
class HTMLStyleElement;
class StyleSheet;
-class String;
typedef Vector<RefPtr<StyleSheet> > StyleSheetVector;
diff --git a/WebCore/css/WebKitCSSKeyframesRule.h b/WebCore/css/WebKitCSSKeyframesRule.h
index f58406f..2836942 100644
--- a/WebCore/css/WebKitCSSKeyframesRule.h
+++ b/WebCore/css/WebKitCSSKeyframesRule.h
@@ -27,6 +27,7 @@
#define WebKitCSSKeyframesRule_h
#include "CSSRule.h"
+#include <wtf/Forward.h>
#include <wtf/RefPtr.h>
#include "AtomicString.h"
@@ -34,7 +35,6 @@ namespace WebCore {
class CSSRuleList;
class WebKitCSSKeyframeRule;
-class String;
typedef int ExceptionCode;
diff --git a/WebCore/css/mathml.css b/WebCore/css/mathml.css
index ca9d7b0..fd125c0 100644
--- a/WebCore/css/mathml.css
+++ b/WebCore/css/mathml.css
@@ -1,7 +1,7 @@
@namespace "http://www.w3.org/1998/Math/MathML";
math {
- font-family: Symbol, "Times New Roman";
+ font-family: STIXGeneral, Symbol, "Times New Roman", sans-serif;
display: inline-block;
padding: 0px;
margin: 0px;
@@ -29,7 +29,7 @@ mrow, mfenced {
padding-right: 1px;
}
-mi{
+mi {
font-style: italic;
padding-right: 0.1em;
}
@@ -94,15 +94,35 @@ math > mo, mrow > mo, mfenced > mo {
padding-right: 0.05em;
}
-math[mathsize="small"], mstyle[mathsize="small"], mo[mathsize="small"], mn[mathsize="small"], mi[mathsize="small"], mtext[mathsize="small"], mspace[mathsize="small"], ms[mathsize="small"]{
+math[mathvariant="normal"], mstyle[mathvariant="normal"], mo[mathvariant="normal"], mn[mathvariant="normal"], mi[mathvariant="normal"], mtext[mathvariant="normal"], mspace[mathvariant="normal"], ms[mathvariant="normal"] {
+ font-style: normal;
+ font-weight: normal;
+}
+
+math[mathvariant="bold"], mstyle[mathvariant="bold"], mo[mathvariant="bold"], mn[mathvariant="bold"], mi[mathvariant="bold"], mtext[mathvariant="bold"], mspace[mathvariant="bold"], ms[mathvariant="bold"] {
+ font-style: normal;
+ font-weight: bold;
+}
+
+math[mathvariant="italic"], mstyle[mathvariant="italic"], mo[mathvariant="italic"], mn[mathvariant="italic"], mi[mathvariant="italic"], mtext[mathvariant="italic"], mspace[mathvariant="italic"], ms[mathvariant="italic"] {
+ font-style: italic;
+ font-weight: normal;
+}
+
+math[mathvariant="bold-italic"], mstyle[mathvariant="bold-italic"], mo[mathvariant="bold-italic"], mn[mathvariant="bold-italic"], mi[mathvariant="bold-italic"], mtext[mathvariant="bold-italic"], mspace[mathvariant="bold-italic"], ms[mathvariant="bold-italic"] {
+ font-weight: bold;
+ font-style: italic;
+}
+
+math[mathsize="small"], mstyle[mathsize="small"], mo[mathsize="small"], mn[mathsize="small"], mi[mathsize="small"], mtext[mathsize="small"], mspace[mathsize="small"], ms[mathsize="small"] {
font-size: 0.75em;
}
-math[mathsize="normal"], mstyle[mathsize="normal"], mo[mathsize="normal"], mn[mathsize="normal"], mi[mathsize="normal"], mtext[mathsize="normal"], mspace[mathsize="normal"], ms[mathsize="normal"]{
+math[mathsize="normal"], mstyle[mathsize="normal"], mo[mathsize="normal"], mn[mathsize="normal"], mi[mathsize="normal"], mtext[mathsize="normal"], mspace[mathsize="normal"], ms[mathsize="normal"] {
font-size: 1em;
}
-math[mathsize="big"], mstyle[mathsize="big"], mo[mathsize="big"], mn[mathsize="big"], mi[mathsize="big"], mtext[mathsize="big"], mspace[mathsize="big"], ms[mathsize="big"]{
+math[mathsize="big"], mstyle[mathsize="big"], mo[mathsize="big"], mn[mathsize="big"], mi[mathsize="big"], mtext[mathsize="big"], mspace[mathsize="big"], ms[mathsize="big"] {
font-size: 1.5em;
}
@@ -113,8 +133,12 @@ annotation, annotation-xml {
mphantom {
visibility: hidden;
}
+
merror {
outline: solid thin red;
+ font-weight: bold;
+ font-family: sans-serif;
+ background-color: lightYellow;
}
msqrt {
@@ -149,9 +173,11 @@ mtable {
text-align: center;
vertical-align: -40%;
}
+
mtr {
display: table-row;
}
+
mtd {
display: table-cell;
padding: 0 0.5ex;
@@ -164,33 +190,43 @@ mtable[columnalign="left"], mtr[columnalign="left"], mtd[columnalign="left"] {
mtable[columnalign="right"], mtr[columnalign="right"], mtd[columnalign="right"] {
text-align: right;
}
+
mtable[rowalign="top"] mtd, mtable mtr[rowalign="top"] mtd, mtable mtr mtd[rowalign="top"] {
vertical-align: top;
}
+
mtable[rowalign="bottom"] mtd, mtable mtr[rowalign="bottom"] mtd, mtable mtr mtd[rowalign="bottom"] {
vertical-align: bottom;
}
+
mtable[rowalign="center"] mtd, mtable mtr[rowalign="center"] mtd, mtable mtr mtd[rowalign="center"] {
vertical-align: middle;
}
+
mtable[frame="solid"] {
border: solid thin;
}
+
mtable[frame="dashed"] {
border: dashed thin;
}
+
mtable[rowlines="solid"], mtable[rowlines="dashed"], mtable[columnlines="solid"], mtable[columnlines="dashed"] {
border-collapse: collapse;
}
+
mtable[rowlines="solid"] > mtr + mtr {
border-top: solid thin;
}
+
mtable[rowlines="dashed"] > mtr + mtr {
border-top: dashed thin;
}
+
mtable[columnlines="solid"] > mtr > mtd + mtd {
border-left: solid thin;
}
+
mtable[columnlines="dashed"] > mtr > mtd + mtd {
border-left: dashed thin;
}