diff -r 000000000000 -r 6474c204b198 layout/style/html.css --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/layout/style/html.css Wed Dec 31 06:09:35 2014 +0100 @@ -0,0 +1,753 @@ +/* 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 url(http://www.w3.org/1999/xhtml); /* set default namespace to HTML */ +@namespace xul url(http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul); + +/* bidi */ + +[dir="rtl"] { + direction: rtl; + unicode-bidi: embed; +} +[dir="ltr"] { + direction: ltr; + unicode-bidi: embed; +} + +bdi:-moz-dir(ltr), [dir="auto"]:-moz-dir(ltr) { direction: ltr; } +bdi:-moz-dir(rtl), [dir="auto"]:-moz-dir(rtl) { direction: rtl; } + +/* To ensure http://www.w3.org/TR/REC-html40/struct/dirlang.html#style-bidi: + * + * "When a block element that does not have a dir attribute is transformed to + * the style of an inline element by a style sheet, the resulting presentation + * should be equivalent, in terms of bidirectional formatting, to the + * formatting obtained by explicitly adding a dir attribute (assigned the + * inherited value) to the transformed element." + * + * and the rules in http://dev.w3.org/html5/spec/rendering.html#rendering + */ + +address, address[dir], +article, article[dir], +aside, aside[dir], +blockquote, blockquote[dir], +body, body[dir], +caption, caption[dir], +center, center[dir], +col, col[dir], +colgroup, colgroup[dir], +dd, dd[dir], +dir, dir[dir], +div, div[dir], +dl, dl[dir], +dt, dt[dir], +fieldset, fieldset[dir], +figcaption, figcaption[dir], +figure, figure[dir], +footer, footer[dir], +form, form[dir], +h1, h1[dir], +h2, h2[dir], +h3, h3[dir], +h4, h4[dir], +h5, h5[dir], +h6, h6[dir], +header, header[dir], +hgroup, hgroup[dir], +hr, hr[dir], +html, html[dir], +legend, legend[dir], +li, li[dir], +listing, listing[dir], +main, main[dir], +marquee, marquee[dir], +menu, menu[dir], +nav, nav[dir], +noframes, noframes[dir], +ol, ol[dir], +p, p[dir], +plaintext, plaintext[dir], +pre, pre[dir], +section, section[dir], +summary, summary[dir], +table, table[dir], +tbody, tbody[dir], +td, td[dir], +tfoot, tfoot[dir], +th, th[dir], +thead, thead[dir], +tr, tr[dir], +ul, ul[dir], +xmp, xmp[dir] { + unicode-bidi: -moz-isolate; +} + +bdi, bdi[dir], output, output[dir], [dir="auto"] { + unicode-bidi: -moz-isolate; +} +bdo, bdo[dir] { + unicode-bidi: bidi-override; +} +bdo[dir="auto"] { + unicode-bidi: -moz-isolate-override; +} +textarea[dir="auto"], pre[dir="auto"] { unicode-bidi: -moz-plaintext; } + +/* blocks */ + +article, +aside, +div, +dt, +figcaption, +footer, +form, +header, +hgroup, +html, +main, +nav, +section { + display: block; +} + +body { + display: block; + margin: 8px; +} + +p, dl, multicol { + display: block; + margin: 1em 0; +} + +dd { + display: block; + -moz-margin-start: 40px; +} + +blockquote, figure { + display: block; + margin: 1em 40px; +} + +address { + display: block; + font-style: italic; +} + +center { + display: block; + text-align: -moz-center; +} + +blockquote[type=cite] { + display: block; + margin: 1em 0px; + -moz-padding-start: 1em; + -moz-border-start: solid; + border-color: blue; + border-width: thin; +} + +span[_moz_quote=true] { + color: blue; +} + +pre[_moz_quote=true] { + color: blue; +} + +h1 { + display: block; + font-size: 2em; + font-weight: bold; + margin: .67em 0; +} + +h2, +:-moz-any(article, aside, nav, section) +h1 { + display: block; + font-size: 1.5em; + font-weight: bold; + margin: .83em 0; +} + +h3, +:-moz-any(article, aside, nav, section) +:-moz-any(article, aside, nav, section) +h1 { + display: block; + font-size: 1.17em; + font-weight: bold; + margin: 1em 0; +} + +h4, +:-moz-any(article, aside, nav, section) +:-moz-any(article, aside, nav, section) +:-moz-any(article, aside, nav, section) +h1 { + display: block; + font-size: 1.00em; + font-weight: bold; + margin: 1.33em 0; +} + +h5, +:-moz-any(article, aside, nav, section) +:-moz-any(article, aside, nav, section) +:-moz-any(article, aside, nav, section) +:-moz-any(article, aside, nav, section) +h1 { + display: block; + font-size: 0.83em; + font-weight: bold; + margin: 1.67em 0; +} + +h6, +:-moz-any(article, aside, nav, section) +:-moz-any(article, aside, nav, section) +:-moz-any(article, aside, nav, section) +:-moz-any(article, aside, nav, section) +:-moz-any(article, aside, nav, section) +h1 { + display: block; + font-size: 0.67em; + font-weight: bold; + margin: 2.33em 0; +} + +listing { + display: block; + font-family: -moz-fixed; + font-size: medium; + white-space: pre; + margin: 1em 0; +} + +xmp, pre, plaintext { + display: block; + font-family: -moz-fixed; + white-space: pre; + margin: 1em 0; +} + +/* tables */ + +table { + display: table; + border-spacing: 2px; + border-collapse: separate; + margin-top: 0; + margin-bottom: 0; + /* XXXldb do we want this if we're border-collapse:collapse ? */ + box-sizing: border-box; + text-indent: 0; +} + +table[align="left"] { + float: left; +} + +table[align="right"] { + float: right; + text-align: start; +} + + +/* border collapse rules */ + + /* Set hidden if we have 'frame' or 'rules' attribute. + Set it on all sides when we do so there's more consistency + in what authors should expect */ + + /* Put this first so 'border' and 'frame' rules can override it. */ +table[rules] { + border-width: thin; + border-style: hidden; +} + + /* 'border' before 'frame' so 'frame' overrides + A border with a given value should, of course, pass that value + as the border-width in pixels -> attr mapping */ + + /* :-moz-table-border-nonzero is like [border]:not([border="0"]) except it + also checks for other zero-like values according to HTML attribute + parsing rules */ +table:-moz-table-border-nonzero { + border-width: thin; + border-style: outset; +} + +table[frame] { + border: thin hidden; +} + +/* specificity must beat table:-moz-table-border-nonzero rule above */ +table[frame="void"] { border-style: hidden; } +table[frame="above"] { border-style: outset hidden hidden hidden; } +table[frame="below"] { border-style: hidden hidden outset hidden; } +table[frame="lhs"] { border-style: hidden hidden hidden outset; } +table[frame="rhs"] { border-style: hidden outset hidden hidden; } +table[frame="hsides"] { border-style: outset hidden; } +table[frame="vsides"] { border-style: hidden outset; } +table[frame="box"], +table[frame="border"] { border-style: outset; } + + +/* Internal Table Borders */ + + /* 'border' cell borders first */ + +table:-moz-table-border-nonzero > * > tr > td, +table:-moz-table-border-nonzero > * > tr > th, +table:-moz-table-border-nonzero > * > td, +table:-moz-table-border-nonzero > * > th, +table:-moz-table-border-nonzero > td, +table:-moz-table-border-nonzero > th +{ + border-width: thin; + border-style: inset; +} + +/* collapse only if rules are really specified */ +table[rules]:not([rules="none"]):not([rules=""]) { + border-collapse: collapse; +} + +/* only specified rules override 'border' settings + (increased specificity to achieve this) */ +table[rules]:not([rules=""])> tr > td, +table[rules]:not([rules=""])> * > tr > td, +table[rules]:not([rules=""])> tr > th, +table[rules]:not([rules=""])> * > tr > th, +table[rules]:not([rules=""])> td, +table[rules]:not([rules=""])> th +{ + border-width: thin; + border-style: none; +} + + +table[rules][rules="none"] > tr > td, +table[rules][rules="none"] > * > tr > td, +table[rules][rules="none"] > tr > th, +table[rules][rules="none"] > * > tr > th, +table[rules][rules="none"] > td, +table[rules][rules="none"] > th +{ + border-width: thin; + border-style: none; +} + +table[rules][rules="all"] > tr > td, +table[rules][rules="all"] > * > tr > td, +table[rules][rules="all"] > tr > th, +table[rules][rules="all"] > * > tr > th, +table[rules][rules="all"] > td, +table[rules][rules="all"] > th +{ + border-width: thin; + border-style: solid; +} + +table[rules][rules="rows"] > tr, +table[rules][rules="rows"] > * > tr { + border-top-width: thin; + border-bottom-width: thin; + border-top-style: solid; + border-bottom-style: solid; +} + + +table[rules][rules="cols"] > tr > td, +table[rules][rules="cols"] > * > tr > td, +table[rules][rules="cols"] > tr > th, +table[rules][rules="cols"] > * > tr > th { + border-left-width: thin; + border-right-width: thin; + border-left-style: solid; + border-right-style: solid; +} + +table[rules][rules="groups"] > colgroup { + border-left-width: thin; + border-right-width: thin; + border-left-style: solid; + border-right-style: solid; +} +table[rules][rules="groups"] > tfoot, +table[rules][rules="groups"] > thead, +table[rules][rules="groups"] > tbody { + border-top-width: thin; + border-bottom-width: thin; + border-top-style: solid; + border-bottom-style: solid; +} + + +/* caption inherits from table not table-outer */ +caption { + display: table-caption; + text-align: center; +} + +table[align="center"] > caption { + margin-left: auto; + margin-right: auto; +} + +table[align="center"] > caption[align="left"] { + margin-right: 0; +} + +table[align="center"] > caption[align="right"] { + margin-left: 0; +} + +tr { + display: table-row; + vertical-align: inherit; +} + +col { + display: table-column; +} + +colgroup { + display: table-column-group; +} + +tbody { + display: table-row-group; + vertical-align: middle; +} + +thead { + display: table-header-group; + vertical-align: middle; +} + +tfoot { + display: table-footer-group; + vertical-align: middle; +} + +/* for XHTML tables without tbody */ +table > tr { + vertical-align: middle; +} + +td { + display: table-cell; + vertical-align: inherit; + text-align: inherit; + padding: 1px; +} + +th { + display: table-cell; + vertical-align: inherit; + font-weight: bold; + padding: 1px; +} + +tr > form:-moz-is-html, tbody > form:-moz-is-html, +thead > form:-moz-is-html, tfoot > form:-moz-is-html, +table > form:-moz-is-html { + /* Important: don't show these forms in HTML */ + display: none !important; +} + +table[bordercolor] > tbody, +table[bordercolor] > thead, +table[bordercolor] > tfoot, +table[bordercolor] > col, +table[bordercolor] > colgroup, +table[bordercolor] > tr, +table[bordercolor] > * > tr, +table[bordercolor] > tr > td, +table[bordercolor] > * > tr > td, +table[bordercolor] > tr > th, +table[bordercolor] > * > tr > th { + border-color: inherit; +} + +/* inlines */ + +q:before { + content: open-quote; +} + +q:after { + content: close-quote; +} + +b, strong { + font-weight: bolder; +} + +i, cite, em, var, dfn { + font-style: italic; +} + +tt, code, kbd, samp { + font-family: -moz-fixed; +} + +u, ins { + text-decoration: underline; +} + +s, strike, del { + text-decoration: line-through; +} + +big { + font-size: larger; +} + +small { + font-size: smaller; +} + +sub { + vertical-align: sub; + font-size: smaller; + line-height: normal; +} + +sup { + vertical-align: super; + font-size: smaller; + line-height: normal; +} + +nobr { + white-space: nowrap; +} + +mark { + background: yellow; + color: black; +} + +/* titles */ +abbr[title], acronym[title] { + border-bottom: dotted 1px; +} + +/* lists */ + +ul, menu, dir { + display: block; + list-style-type: disc; + margin: 1em 0; + -moz-padding-start: 40px; +} + +menu[type="context"] { + display: none !important; +} + +ol { + display: block; + list-style-type: decimal; + margin: 1em 0; + -moz-padding-start: 40px; +} + +li { + display: list-item; +} + +/* nested lists have no top/bottom margins */ +:-moz-any(ul, ol, dir, menu, dl) ul, +:-moz-any(ul, ol, dir, menu, dl) ol, +:-moz-any(ul, ol, dir, menu, dl) dir, +:-moz-any(ul, ol, dir, menu, dl) menu, +:-moz-any(ul, ol, dir, menu, dl) dl { + margin-top: 0; + margin-bottom: 0; +} + +/* 2 deep unordered lists use a circle */ +:-moz-any(ol, ul, menu, dir) ul, +:-moz-any(ol, ul, menu, dir) menu, +:-moz-any(ol, ul, menu, dir) dir { + list-style-type: circle; +} + +/* 3 deep (or more) unordered lists use a square */ +:-moz-any(ol, ul, menu, dir) :-moz-any(ol, ul, menu, dir) ul, +:-moz-any(ol, ul, menu, dir) :-moz-any(ol, ul, menu, dir) menu, +:-moz-any(ol, ul, menu, dir) :-moz-any(ol, ul, menu, dir) dir { + list-style-type: square; +} + + +/* leafs */ + +/*