|
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/. */ |
|
4 |
|
5 @namespace url(http://www.w3.org/1999/xhtml); /* set default namespace to HTML */ |
|
6 |
|
7 |
|
8 /* Quirk: make orphaned LIs have inside bullet (b=1049) */ |
|
9 |
|
10 /* force inside position for orphaned lis */ |
|
11 li { |
|
12 list-style-position: inside; |
|
13 } |
|
14 |
|
15 /* restore outside position for lists inside LIs */ |
|
16 li ul, li ol, li dir, li menu { |
|
17 list-style-position: outside; |
|
18 } |
|
19 |
|
20 /* undo previous two rules for properly nested lists */ |
|
21 ul ul, ul ol, ul dir, ul menu, ul li, |
|
22 ol ul, ol ol, ol dir, ol menu, ol li, |
|
23 dir ul, dir ol, dir dir, dir menu, dir li, |
|
24 menu ul, menu ol, menu dir, menu menu, menu li { |
|
25 list-style-position: inherit; |
|
26 } |
|
27 |
|
28 |
|
29 /* Quirk: ensure that we get proper padding if the very first |
|
30 * node in an LI is another UL or OL. This is an ugly way to |
|
31 * fix the problem, because it extends the LI up into what |
|
32 * would otherwise appear to be the ULs space. (b=38832) */ |
|
33 |
|
34 /* Note: this fix will fail once we implement marker box |
|
35 * alignment correctly. */ |
|
36 li > ul:-moz-first-node, |
|
37 li > ol:-moz-first-node { |
|
38 padding-top: 1em; |
|
39 } |
|
40 |
|
41 |
|
42 /* Quirk: prevent bullet from resizing with the list item |
|
43 * see bug 97351 |
|
44 */ |
|
45 |
|
46 li::-moz-list-bullet { |
|
47 font-size: initial; |
|
48 } |
|
49 |
|
50 |
|
51 table { |
|
52 text-align: start; |
|
53 white-space: normal; /* compatible with IE & spec */ |
|
54 line-height: normal; |
|
55 |
|
56 /* Quirk: cut off all font inheritance in tables except for family. */ |
|
57 font-size: initial; |
|
58 font-weight: initial; |
|
59 font-style: initial; |
|
60 font-variant: initial; |
|
61 } |
|
62 |
|
63 /* |
|
64 * Make table borders gray for compatibility with what other browsers do |
|
65 * in all modes, rather than using the foreground color. |
|
66 */ |
|
67 table, td, th, tr, thead, tbody, tfoot, colgroup, col { |
|
68 border-color: gray; |
|
69 } |
|
70 |
|
71 |
|
72 /* Quirk: collapse top margin of BODY and TD and bottom margin of TD */ |
|
73 |
|
74 /* |
|
75 * While it may seem simpler to use :-moz-first-node and :-moz-last-node without |
|
76 * tags, it's slower, since we have to do the :-moz-first-node or :-moz-last-node |
|
77 * check on every single element in the document. If we list all the |
|
78 * element names for which the UA stylesheet specifies a margin, the |
|
79 * selectors will be hashed in the RuleHash and things will be much more |
|
80 * efficient. |
|
81 */ |
|
82 body > p:-moz-first-node, td > p:-moz-first-node, th > p:-moz-first-node, |
|
83 body > dl:-moz-first-node, td > dl:-moz-first-node, th > dl:-moz-first-node, |
|
84 body > multicol:-moz-first-node, td > multicol:-moz-first-node, th > multicol:-moz-first-node, |
|
85 body > blockquote:-moz-first-node, td > blockquote:-moz-first-node, th > blockquote:-moz-first-node, |
|
86 body > h1:-moz-first-node, td > h1:-moz-first-node, th > h1:-moz-first-node, |
|
87 body > h2:-moz-first-node, td > h2:-moz-first-node, th > h2:-moz-first-node, |
|
88 body > h3:-moz-first-node, td > h3:-moz-first-node, th > h3:-moz-first-node, |
|
89 body > h4:-moz-first-node, td > h4:-moz-first-node, th > h4:-moz-first-node, |
|
90 body > h5:-moz-first-node, td > h5:-moz-first-node, th > h5:-moz-first-node, |
|
91 body > h6:-moz-first-node, td > h6:-moz-first-node, th > h6:-moz-first-node, |
|
92 body > listing:-moz-first-node, td > listing:-moz-first-node, th > listing:-moz-first-node, |
|
93 body > plaintext:-moz-first-node, td > plaintext:-moz-first-node, th > plaintext:-moz-first-node, |
|
94 body > xmp:-moz-first-node, td > xmp:-moz-first-node, th > xmp:-moz-first-node, |
|
95 body > pre:-moz-first-node, td > pre:-moz-first-node, th > pre:-moz-first-node, |
|
96 body > ul:-moz-first-node, td > ul:-moz-first-node, th > ul:-moz-first-node, |
|
97 body > menu:-moz-first-node, td > menu:-moz-first-node, th > menu:-moz-first-node, |
|
98 body > dir:-moz-first-node, td > dir:-moz-first-node, th > dir:-moz-first-node, |
|
99 body > ol:-moz-first-node, td > ol:-moz-first-node, th > ol:-moz-first-node { |
|
100 margin-top: 0; |
|
101 } |
|
102 |
|
103 td > p:-moz-last-node, th > p:-moz-last-node { |
|
104 margin-bottom: 0; |
|
105 } |
|
106 |
|
107 /* Similar as above, but for empty elements |
|
108 * collapse the bottom or top margins of empty elements |
|
109 * - see bug 97361 |
|
110 */ |
|
111 body > p:-moz-only-whitespace:-moz-first-node, |
|
112 td > p:-moz-only-whitespace:-moz-first-node, th > p:-moz-only-whitespace:-moz-first-node, |
|
113 body > dl:-moz-only-whitespace:-moz-first-node, td > dl:-moz-only-whitespace:-moz-first-node, |
|
114 th > dl:-moz-only-whitespace:-moz-first-node, body > multicol:-moz-only-whitespace:-moz-first-node, |
|
115 td > multicol:-moz-only-whitespace:-moz-first-node, th > multicol:-moz-only-whitespace:-moz-first-node, |
|
116 body > blockquote:-moz-only-whitespace:-moz-first-node, td > blockquote:-moz-only-whitespace:-moz-first-node, |
|
117 th > blockquote:-moz-only-whitespace:-moz-first-node, body > h1:-moz-only-whitespace:-moz-first-node, |
|
118 td > h1:-moz-only-whitespace:-moz-first-node, th > h1:-moz-only-whitespace:-moz-first-node, |
|
119 body > h2:-moz-only-whitespace:-moz-first-node, td > h2:-moz-only-whitespace:-moz-first-node, |
|
120 th > h2:-moz-only-whitespace:-moz-first-node, body > h3:-moz-only-whitespace:-moz-first-node, |
|
121 td > h3:-moz-only-whitespace:-moz-first-node, th > h3:-moz-only-whitespace:-moz-first-node, |
|
122 body > h4:-moz-only-whitespace:-moz-first-node, td > h4:-moz-only-whitespace:-moz-first-node, |
|
123 th > h4:-moz-only-whitespace:-moz-first-node, body > h5:-moz-only-whitespace:-moz-first-node, |
|
124 td > h5:-moz-only-whitespace:-moz-first-node, th > h5:-moz-only-whitespace:-moz-first-node, |
|
125 body > h6:-moz-only-whitespace:-moz-first-node, td > h6:-moz-only-whitespace:-moz-first-node, |
|
126 th > h6:-moz-only-whitespace:-moz-first-node, body > listing:-moz-only-whitespace:-moz-first-node, |
|
127 td > listing:-moz-only-whitespace:-moz-first-node, th > listing:-moz-only-whitespace:-moz-first-node, |
|
128 body > plaintext:-moz-only-whitespace:-moz-first-node, td > plaintext:-moz-only-whitespace:-moz-first-node, |
|
129 th > plaintext:-moz-only-whitespace:-moz-first-node, body > xmp:-moz-only-whitespace:-moz-first-node, |
|
130 td > xmp:-moz-only-whitespace:-moz-first-node, th > xmp:-moz-only-whitespace:-moz-first-node, |
|
131 body > pre:-moz-only-whitespace:-moz-first-node, td > pre:-moz-only-whitespace:-moz-first-node, |
|
132 th > pre:-moz-only-whitespace:-moz-first-node, body > ul:-moz-only-whitespace:-moz-first-node, |
|
133 td > ul:-moz-only-whitespace:-moz-first-node, th > ul:-moz-only-whitespace:-moz-first-node, |
|
134 body > menu:-moz-only-whitespace:-moz-first-node, td > menu:-moz-only-whitespace:-moz-first-node, |
|
135 th > menu:-moz-only-whitespace:-moz-first-node, body > dir:-moz-only-whitespace:-moz-first-node, |
|
136 td > dir:-moz-only-whitespace:-moz-first-node, th > dir:-moz-only-whitespace:-moz-first-node, |
|
137 body > ol:-moz-only-whitespace:-moz-first-node, td > ol:-moz-only-whitespace:-moz-first-node, |
|
138 th > ol:-moz-only-whitespace:-moz-first-node { |
|
139 margin-bottom: 0; |
|
140 } |
|
141 |
|
142 td > p:-moz-only-whitespace:-moz-last-node, th > p:-moz-only-whitespace:-moz-last-node, |
|
143 td > dl:-moz-only-whitespace:-moz-last-node, th > dl:-moz-only-whitespace:-moz-last-node, |
|
144 td > multicol:-moz-only-whitespace:-moz-last-node, th > multicol:-moz-only-whitespace:-moz-last-node, |
|
145 td > blockquote:-moz-only-whitespace:-moz-last-node, th > blockquote:-moz-only-whitespace:-moz-last-node, |
|
146 td > h1:-moz-only-whitespace:-moz-last-node, th > h1:-moz-only-whitespace:-moz-last-node, |
|
147 td > h2:-moz-only-whitespace:-moz-last-node, th > h2:-moz-only-whitespace:-moz-last-node, |
|
148 td > h3:-moz-only-whitespace:-moz-last-node, th > h3:-moz-only-whitespace:-moz-last-node, |
|
149 td > h4:-moz-only-whitespace:-moz-last-node, th > h4:-moz-only-whitespace:-moz-last-node, |
|
150 td > h5:-moz-only-whitespace:-moz-last-node, th > h5:-moz-only-whitespace:-moz-last-node, |
|
151 td > h6:-moz-only-whitespace:-moz-last-node, th > h6:-moz-only-whitespace:-moz-last-node, |
|
152 td > listing:-moz-only-whitespace:-moz-last-node, th > listing:-moz-only-whitespace:-moz-last-node, |
|
153 td > plaintext:-moz-only-whitespace:-moz-last-node, th > plaintext:-moz-only-whitespace:-moz-last-node, |
|
154 td > xmp:-moz-only-whitespace:-moz-last-node, th > xmp:-moz-only-whitespace:-moz-last-node, |
|
155 td > pre:-moz-only-whitespace:-moz-last-node, th > pre:-moz-only-whitespace:-moz-last-node, |
|
156 td > ul:-moz-only-whitespace:-moz-last-node, th > ul:-moz-only-whitespace:-moz-last-node, |
|
157 td > menu:-moz-only-whitespace:-moz-last-node, th > menu:-moz-only-whitespace:-moz-last-node, |
|
158 td > dir:-moz-only-whitespace:-moz-last-node, th > dir:-moz-only-whitespace:-moz-last-node, |
|
159 td > ol:-moz-only-whitespace:-moz-last-node, th > ol:-moz-only-whitespace:-moz-last-node { |
|
160 margin-top: 0; |
|
161 } |
|
162 |
|
163 |
|
164 /* Quirk: DD not in DL has text-indent instead of margin (b=5119) */ |
|
165 |
|
166 :not(dl) > dd { |
|
167 display: inline; |
|
168 margin: 0; |
|
169 } |
|
170 |
|
171 :not(dl) > dd:before { |
|
172 display: inline; |
|
173 white-space: pre; |
|
174 font-size: 1px; |
|
175 line-height: 0; |
|
176 content: "\A "; |
|
177 -moz-margin-end: 40px; |
|
178 } |
|
179 |
|
180 |
|
181 /* quirk to indent nested DL elements (b=8749) */ |
|
182 |
|
183 dl > dl { |
|
184 display: block; |
|
185 -moz-margin-start: 40px; |
|
186 } |
|
187 |
|
188 |
|
189 /* Quirk: Make floated images have a margin (b=58899) */ |
|
190 |
|
191 img[align=left] { |
|
192 margin-right: 3px; |
|
193 } |
|
194 |
|
195 img[align=right] { |
|
196 margin-left: 3px; |
|
197 } |
|
198 |
|
199 /* |
|
200 * Quirk: Use border-box box sizing for text inputs, password inputs, and |
|
201 * textareas. (b=184478 on why we use content-box sizing in standards mode) |
|
202 */ |
|
203 |
|
204 /* Note that all other <input>s already use border-box |
|
205 sizing, so we're ok with this selector */ |
|
206 input:not([type=image]), textarea { |
|
207 box-sizing: border-box; |
|
208 } |
|
209 |
|
210 /* Quirk: give form margin for compat (b=41806) */ |
|
211 form { |
|
212 margin-bottom: 1em; |
|
213 } |