1 /* This Source Code Form is subject to the terms of the Mozilla Public
2 * License, v. 2.0. If a copy of the MPL was not distributed with this
3 * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
5 @namespace url
(http://www
.w3
.org
/1999/xhtml
); /* set default namespace to HTML */
6 @namespace xul url
(http://www
.mozilla
.org
/keymaster
/gatekeeper
/there
.is
.only
.xul
);
19 bdi:-moz-dir
(ltr
), [dir
="auto"]:-moz-dir
(ltr
) { direction: ltr
; }
20 bdi:-moz-dir
(rtl
), [dir
="auto"]:-moz-dir
(rtl
) { direction: rtl
; }
22 /* To ensure http://www.w3.org/TR/REC-html40/struct/dirlang.html#style-bidi:
24 * "When a block element that does not have a dir attribute is transformed to
25 * the style of an inline element by a style sheet, the resulting presentation
26 * should be equivalent, in terms of bidirectional formatting, to the
27 * formatting obtained by explicitly adding a dir attribute (assigned the
28 * inherited value) to the transformed element."
30 * and the rules in http://dev.w3.org/html5/spec/rendering.html#rendering
33 address
, address
[dir
],
34 article
, article
[dir
],
36 blockquote
, blockquote
[dir
],
38 caption
, caption
[dir
],
41 colgroup
, colgroup
[dir
],
47 fieldset
, fieldset
[dir
],
48 figcaption
, figcaption
[dir
],
64 listing
, listing
[dir
],
66 marquee
, marquee
[dir
],
69 noframes
, noframes
[dir
],
72 plaintext
, plaintext
[dir
],
74 section
, section
[dir
],
75 summary
, summary
[dir
],
85 unicode-bidi: -moz-isolate
;
88 bdi
, bdi
[dir
], output
, output
[dir
], [dir
="auto"] {
89 unicode-bidi: -moz-isolate
;
92 unicode-bidi: bidi-override
;
95 unicode-bidi: -moz-isolate-override
;
97 textarea
[dir
="auto"], pre
[dir
="auto"] { unicode-bidi: -moz-plaintext
; }
129 -moz-margin-start: 40px;
144 text-align: -moz-center
;
147 blockquote
[type
=cite
] {
150 -moz-padding-start: 1em;
151 -moz-border-start: solid
;
156 span
[_moz_quote
=true
] {
160 pre
[_moz_quote
=true
] {
172 :-moz-any
(article
, aside
, nav
, section
)
181 :-moz-any
(article
, aside
, nav
, section
)
182 :-moz-any
(article
, aside
, nav
, section
)
191 :-moz-any
(article
, aside
, nav
, section
)
192 :-moz-any
(article
, aside
, nav
, section
)
193 :-moz-any
(article
, aside
, nav
, section
)
202 :-moz-any
(article
, aside
, nav
, section
)
203 :-moz-any
(article
, aside
, nav
, section
)
204 :-moz-any
(article
, aside
, nav
, section
)
205 :-moz-any
(article
, aside
, nav
, section
)
214 :-moz-any
(article
, aside
, nav
, section
)
215 :-moz-any
(article
, aside
, nav
, section
)
216 :-moz-any
(article
, aside
, nav
, section
)
217 :-moz-any
(article
, aside
, nav
, section
)
218 :-moz-any
(article
, aside
, nav
, section
)
228 font-family: -moz-fixed
;
234 xmp
, pre
, plaintext
{
236 font-family: -moz-fixed
;
246 border-collapse: separate
;
249 /* XXXldb do we want this if we're border-collapse:collapse ? */
250 box-sizing: border-box
;
254 table
[align
="left"] {
258 table
[align
="right"] {
264 /* border collapse rules */
266 /* Set hidden if we have 'frame' or 'rules' attribute.
267 Set it on all sides when we do so there's more consistency
268 in what authors should expect */
270 /* Put this first so 'border' and 'frame' rules can override it. */
273 border-style: hidden
;
276 /* 'border' before 'frame' so 'frame' overrides
277 A border with a given value should, of course, pass that value
278 as the border-width in pixels -> attr mapping */
280 /* :-moz-table-border-nonzero is like [border]:not([border="0"]) except it
281 also checks for other zero-like values according to HTML attribute
283 table:-moz-table-border-nonzero
{
285 border-style: outset
;
292 /* specificity must beat table:-moz-table-border-nonzero rule above */
293 table
[frame
="void"] { border-style: hidden
; }
294 table
[frame
="above"] { border-style: outset hidden hidden hidden
; }
295 table
[frame
="below"] { border-style: hidden hidden outset hidden
; }
296 table
[frame
="lhs"] { border-style: hidden hidden hidden outset
; }
297 table
[frame
="rhs"] { border-style: hidden outset hidden hidden
; }
298 table
[frame
="hsides"] { border-style: outset hidden
; }
299 table
[frame
="vsides"] { border-style: hidden outset
; }
301 table
[frame
="border"] { border-style: outset
; }
304 /* Internal Table Borders */
306 /* 'border' cell borders first */
308 table:-moz-table-border-nonzero
> * > tr
> td
,
309 table:-moz-table-border-nonzero
> * > tr
> th
,
310 table:-moz-table-border-nonzero
> * > td
,
311 table:-moz-table-border-nonzero
> * > th
,
312 table:-moz-table-border-nonzero
> td
,
313 table:-moz-table-border-nonzero
> th
319 /* collapse only if rules are really specified */
320 table
[rules
]:not
([rules
="none"]):not
([rules
=""]) {
321 border-collapse: collapse
;
324 /* only specified rules override 'border' settings
325 (increased specificity to achieve this) */
326 table
[rules
]:not
([rules
=""])> tr
> td
,
327 table
[rules
]:not
([rules
=""])> * > tr
> td
,
328 table
[rules
]:not
([rules
=""])> tr
> th
,
329 table
[rules
]:not
([rules
=""])> * > tr
> th
,
330 table
[rules
]:not
([rules
=""])> td
,
331 table
[rules
]:not
([rules
=""])> th
338 table
[rules
][rules
="none"] > tr
> td
,
339 table
[rules
][rules
="none"] > * > tr
> td
,
340 table
[rules
][rules
="none"] > tr
> th
,
341 table
[rules
][rules
="none"] > * > tr
> th
,
342 table
[rules
][rules
="none"] > td
,
343 table
[rules
][rules
="none"] > th
349 table
[rules
][rules
="all"] > tr
> td
,
350 table
[rules
][rules
="all"] > * > tr
> td
,
351 table
[rules
][rules
="all"] > tr
> th
,
352 table
[rules
][rules
="all"] > * > tr
> th
,
353 table
[rules
][rules
="all"] > td
,
354 table
[rules
][rules
="all"] > th
360 table
[rules
][rules
="rows"] > tr
,
361 table
[rules
][rules
="rows"] > * > tr
{
362 border-top-width: thin
;
363 border-bottom-width: thin
;
364 border-top-style: solid
;
365 border-bottom-style: solid
;
369 table
[rules
][rules
="cols"] > tr
> td
,
370 table
[rules
][rules
="cols"] > * > tr
> td
,
371 table
[rules
][rules
="cols"] > tr
> th
,
372 table
[rules
][rules
="cols"] > * > tr
> th
{
373 border-left-width: thin
;
374 border-right-width: thin
;
375 border-left-style: solid
;
376 border-right-style: solid
;
379 table
[rules
][rules
="groups"] > colgroup
{
380 border-left-width: thin
;
381 border-right-width: thin
;
382 border-left-style: solid
;
383 border-right-style: solid
;
385 table
[rules
][rules
="groups"] > tfoot
,
386 table
[rules
][rules
="groups"] > thead
,
387 table
[rules
][rules
="groups"] > tbody
{
388 border-top-width: thin
;
389 border-bottom-width: thin
;
390 border-top-style: solid
;
391 border-bottom-style: solid
;
395 /* caption inherits from table not table-outer */
397 display: table-caption
;
401 table
[align
="center"] > caption
{
406 table
[align
="center"] > caption
[align
="left"] {
410 table
[align
="center"] > caption
[align
="right"] {
416 vertical-align: inherit
;
420 display: table-column
;
424 display: table-column-group
;
428 display: table-row-group
;
429 vertical-align: middle
;
433 display: table-header-group
;
434 vertical-align: middle
;
438 display: table-footer-group
;
439 vertical-align: middle
;
442 /* for XHTML tables without tbody */
444 vertical-align: middle
;
449 vertical-align: inherit
;
456 vertical-align: inherit
;
461 tr
> form:-moz-is-html
, tbody
> form:-moz-is-html
,
462 thead
> form:-moz-is-html
, tfoot
> form:-moz-is-html
,
463 table
> form:-moz-is-html
{
464 /* Important: don't show these forms in HTML */
465 display: none
!important
;
468 table
[bordercolor
] > tbody
,
469 table
[bordercolor
] > thead
,
470 table
[bordercolor
] > tfoot
,
471 table
[bordercolor
] > col
,
472 table
[bordercolor
] > colgroup
,
473 table
[bordercolor
] > tr
,
474 table
[bordercolor
] > * > tr
,
475 table
[bordercolor
] > tr
> td
,
476 table
[bordercolor
] > * > tr
> td
,
477 table
[bordercolor
] > tr
> th
,
478 table
[bordercolor
] > * > tr
> th
{
479 border-color: inherit
;
489 content: close-quote
;
496 i
, cite
, em
, var
, dfn
{
500 tt
, code
, kbd
, samp
{
501 font-family: -moz-fixed
;
505 text-decoration: underline
;
509 text-decoration: line-through
;
527 vertical-align: super
;
542 abbr
[title
], acronym
[title
] {
543 border-bottom: dotted
1px;
550 list-style-type: disc
;
552 -moz-padding-start: 40px;
555 menu
[type
="context"] {
556 display: none
!important
;
561 list-style-type: decimal
;
563 -moz-padding-start: 40px;
570 /* nested lists have no top/bottom margins */
571 :-moz-any
(ul
, ol
, dir
, menu
, dl
) ul
,
572 :-moz-any
(ul
, ol
, dir
, menu
, dl
) ol
,
573 :-moz-any
(ul
, ol
, dir
, menu
, dl
) dir
,
574 :-moz-any
(ul
, ol
, dir
, menu
, dl
) menu
,
575 :-moz-any
(ul
, ol
, dir
, menu
, dl
) dl
{
580 /* 2 deep unordered lists use a circle */
581 :-moz-any
(ol
, ul
, menu
, dir
) ul
,
582 :-moz-any
(ol
, ul
, menu
, dir
) menu
,
583 :-moz-any
(ol
, ul
, menu
, dir
) dir
{
584 list-style-type: circle
;
587 /* 3 deep (or more) unordered lists use a square */
588 :-moz-any
(ol
, ul
, menu
, dir
) :-moz-any
(ol
, ul
, menu
, dir
) ul
,
589 :-moz-any
(ol
, ul
, menu
, dir
) :-moz-any
(ol
, ul
, menu
, dir
) menu
,
590 :-moz-any
(ol
, ul
, menu
, dir
) :-moz-any
(ol
, ul
, menu
, dir
) dir
{
591 list-style-type: square
;
597 /* <hr> noshade and color attributes are handled completely by
598 * the nsHTMLHRElement attribute mapping code
604 margin: 0.5em auto
0.5em auto
;
606 -moz-float-edge: margin-box
;
607 box-sizing: border-box
;
611 border-style: solid none none none
;
614 img:-moz-broken::before
, input:-moz-broken::before
,
615 img:-moz-user-disabled::before
, input:-moz-user-disabled::before
,
616 img:-moz-loading::before
, input:-moz-loading::before
,
617 applet:-moz-empty-except-children-with-localname
(param
):-moz-broken::before
,
618 applet:-moz-empty-except-children-with-localname
(param
):-moz-user-disabled::before
{
619 content: -moz-alt-content
!important
;
620 unicode-bidi: -moz-isolate
;
623 :-moz-any
(object
,applet
):-moz-any
(:-moz-broken
,:-moz-user-disabled
) > *|
* {
625 Inherit in the object's alignment so that if we aren't aligned explicitly
626 we'll end up in the right place vertically. See bug 36997. Note that this
627 is not !important because we _might_ be aligned explicitly.
629 vertical-align: inherit
;
632 img:-moz-suppressed
, input:-moz-suppressed
, object:-moz-suppressed
,
633 embed:-moz-suppressed
, applet:-moz-suppressed
{
635 Set visibility too in case the page changes display. Note that we _may_
636 want to just set visibility and not display, in general, if we find that
637 display:none breaks too many layouts. And if we decide we really do want
638 people to be able to right-click blocked images, etc, we need to set
639 neither one, and hack the painting code.... :(
641 display: none
!important
;
642 visibility: hidden
!important
;
645 img
[usemap
], object
[usemap
] {
650 display: block
! important
;
651 overflow: -moz-hidden-unscrollable
;
652 position: static
! important
;
653 float: none
! important
;
654 border: none
! important
;
662 border-radius: 0 ! important
;
674 position: static
! important
;
675 float: none
! important
;
679 -moz-user-select: none
;
682 /* focusable content: anything w/ tabindex >=0 is focusable, but we
683 skip drawing a focus outline on a few things that handle it
685 :-moz-focusring:not
(input
):not
(button
):not
(select
):not
(textarea
):not
(iframe
):not
(frame
):not
(body
):not
(html
) {
686 /* Don't specify the outline-color, we should always use initial value. */
690 /* hidden elements */
691 base
, basefont
, datalist
, head
, meta
, script
, style
, title
,
692 noembed
, param
, template
{
697 /* Don't give it frames other than its imageframe */
698 display: none
! important
;
701 iframe:-moz-full-screen
{
702 /* iframes in full-screen mode don't show a border. */
707 video
> xul|videocontrols
, audio
> xul|videocontrols
{
709 -moz-box-orient: vertical
;
710 -moz-binding: url
("chrome://global/content/bindings/videocontrols.xml#videoControls");
713 video:not
([controls
]) > xul|videocontrols
,
714 audio:not
([controls
]) > xul|videocontrols
{
719 audio:not
([controls
]) {
723 *|
*::-moz-html-canvas-content
{
724 display: block
!important
;
725 /* we want to be an absolute and fixed container */
726 -moz-transform: translate
(0) !important
;
729 video
> .caption-box
{
734 /* emulation of non-standard HTML <marquee> tag */
736 width: -moz-available
;
737 display: inline-block
;
738 vertical-align: text-bottom
;
740 -moz-binding: url
('chrome://xbl-marquee/content/xbl-marquee.xml#marquee-horizontal');
743 marquee
[direction
="up"], marquee
[direction
="down"] {
744 -moz-binding: url
('chrome://xbl-marquee/content/xbl-marquee.xml#marquee-vertical');
748 /* PRINT ONLY rules follow */
751 marquee
{ -moz-binding: none
; }