gecko-dev/layout/style/forms.css
bzbarsky%mit.edu 0240ed412b Make sure we drop native theming of form controls in various situations when we
need to.  Bug 184359 and its dependencies (171598, 181490, 184218, 185708,
188785, 189907, 190610).  Patch by tim@prismelite.com (Tim Hill), r=bryner,
sr=bzbarsky, a=asa
2003-01-31 10:21:52 +00:00

473 lines
11 KiB
CSS

/* ***** BEGIN LICENSE BLOCK *****
* Version: NPL 1.1/GPL 2.0/LGPL 2.1
*
* The contents of this file are subject to the Netscape Public License
* Version 1.1 (the "License"); you may not use this file except in
* compliance with the License. You may obtain a copy of the License at
* http://www.mozilla.org/NPL/
*
* Software distributed under the License is distributed on an "AS IS" basis,
* WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License
* for the specific language governing rights and limitations under the
* License.
*
* The Original Code is mozilla.org code.
*
* The Initial Developer of the Original Code is
* Netscape Communications Corporation.
* Portions created by the Initial Developer are Copyright (C) 1998
* the Initial Developer. All Rights Reserved.
*
* Contributor(s):
*
* Alternatively, the contents of this file may be used under the terms of
* either the GNU General Public License Version 2 or later (the "GPL"), or
* the GNU Lesser General Public License Version 2.1 or later (the "LGPL"),
* in which case the provisions of the GPL or the LGPL are applicable instead
* of those above. If you wish to allow use of your version of this file only
* under the terms of either the GPL or the LGPL, and not to allow others to
* use your version of this file under the terms of the NPL, indicate your
* decision by deleting the provisions above and replace them with the notice
* and other provisions required by the GPL or the LGPL. If you do not delete
* the provisions above, a recipient may use your version of this file under
* the terms of any one of the NPL, the GPL or the LGPL.
*
* ***** END LICENSE BLOCK ***** */
/**
Styles for old GFX form widgets
**/
@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);
*|*:-moz-fieldset-content {
display: block;
}
form {
display: block;
margin: 0 0 1em 0;
}
/* miscellaneous form elements */
legend {
padding-left: 2px;
padding-right: 2px;
border: none;
}
fieldset {
display: block;
margin-left: 2px;
margin-right: 2px;
padding: 0.75em 0.625em;
border: 2px groove ThreeDFace;
}
label {
cursor: default;
}
/* default inputs, text inputs, and selects */
/* Note: Values in nsNativeTheme IsWidgetStyled function
need to match textfield background/border values here */
input {
-moz-appearance: textfield;
/* The sum of border-top, border-bottom, padding-top, padding-bottom
must be the same here, for buttons, and for <select> (including its
internal padding magic) */
padding: 1px 0 1px 0;
border: 2px inset ThreeDFace;
background-color: -moz-Field;
color: -moz-FieldText;
font: -moz-field;
line-height: normal !important;
text-align: start;
text-transform: none;
cursor: text;
-moz-user-focus: normal;
-moz-binding: url("resource:///res/builtin/platformHTMLBindings.xml#inputFields");
}
textarea {
margin: 1px 0 1px 0;
border: 2px inset ThreeDFace;
background-color: -moz-Field;
color: -moz-FieldText;
font: medium -moz-fixed;
line-height: normal !important;
text-align: start;
text-transform: none;
vertical-align: text-bottom;
cursor: text;
-moz-user-focus: normal;
-moz-binding: url("resource:///res/builtin/platformHTMLBindings.xml#textAreas");
-moz-appearance: textfield;
}
textarea > scrollbar {
cursor: default;
}
*|*:-moz-singleline-textcontrol-frame {
overflow: hidden;
white-space: nowrap;
background-color: inherit;
text-align: inherit;
}
select {
margin: 0;
border-color: ThreeDFace;
background-color: -moz-Field;
color: -moz-FieldText;
font: -moz-list;
line-height: normal !important;
white-space: nowrap;
text-align: start;
cursor: default;
-moz-box-sizing: border-box;
-moz-user-select: none;
-moz-user-focus: normal;
-moz-appearance: menulist;
border-width: 2px !important;
border-style: inset !important;
-moz-border-radius: 0 !important;
}
select[size] {
/* Different alignment and padding for listbox vs combobox */
vertical-align: text-bottom;
padding: 1px 0 1px 0;
}
select[size="1"] {
/* Except this is not a listbox */
vertical-align: baseline;
padding: 0;
-moz-appearance: menulist;
}
select > input[type="button"] {
width: 12px;
height: 12px;
white-space: nowrap;
-moz-user-focus: none;
position: static !important;
background-image: url("arrow.gif") !important;
background-repeat: no-repeat !important;
background-position: center !important;
-moz-appearance: menulist-button;
}
select > input[type="button"]:active {
background-image: url("arrowd.gif") !important;
}
select[size], :-moz-select-scrolled-content {
overflow: -moz-scrollbars-vertical;
}
select[size] {
-moz-appearance: listbox;
}
select:-moz-dummy-option {
visibility: hidden;
content: "XX"; /* demo 8, edge case test 1 */
}
*|*:-moz-display-comboboxcontrol-frame {
overflow: hidden;
/* This top/bottom padding plus the combobox top/bottom border need to
add up to the top/bottom borderpadding of text inputs and buttons */
padding: 1px 0 1px 4px;
background-color: inherit;
color: inherit;
white-space: nowrap;
text-align: inherit;
-moz-user-select: none;
}
option {
display: block;
min-height: 1em;
line-height: normal !important;
-moz-user-select: none;
-moz-user-focus: none;
}
select > option {
padding: 0 5px 0 3px;
}
option:checked {
background-color: Highlight ! important;
color: HighlightText ! important;
}
optgroup {
display: block;
font: -moz-list;
line-height: normal !important;
font-style: italic;
font-weight: bold;
-moz-user-select: none;
-moz-user-focus: none;
}
optgroup > option {
padding-left: 20px;
font-style: normal;
font-weight: normal;
}
optgroup:before {
display: block;
content: attr(label);
}
*|*:-moz-dropdown-list {
z-index: 2147483647;
background-color: inherit;
-moz-user-select: none;
border: 1px outset black !important;
}
input[disabled],
textarea[disabled],
option[disabled],
optgroup[disabled],
select[disabled] {
color: GrayText;
background-color: ThreeDFace;
cursor: default;
}
option[disabled],
optgroup[disabled] {
background-color: transparent;
}
/* hidden inputs */
input[type="hidden"] {
-moz-appearance: none;
display: none;
padding: 0;
border: 0;
cursor: auto;
-moz-user-focus: ignore;
-moz-binding: none;
}
/* image buttons */
input[type="image"] {
-moz-appearance: none;
padding: 0;
border: none;
background-color: transparent;
font-family: sans-serif;
font-size: small;
cursor: pointer;
-moz-binding: none;
}
input[type="image"][disabled] {
cursor: default;
}
input[type="image"]:focus {
-moz-outline: 1px dotted -moz-FieldText;
}
/* file selector */
input[type="file"] {
-moz-appearance: none;
white-space: nowrap;
cursor: default;
-moz-binding: none;
padding: 0 !important;
border-style: none !important;
}
input[type="file"] > input[type="text"] {
border-color: inherit;
background-color: inherit;
color: inherit;
font-size: inherit;
height: inherit;
}
/* button part of file selector */
input[type="file"] > input[type="button"] {
height: inherit;
font-size: inherit;
}
/* radio buttons */
input[type="radio"] {
-moz-appearance: radio;
width: 13px;
height: 13px;
margin: 3px 3px 0px 5px;
padding: 0;
cursor: default;
-moz-binding: none;
-moz-border-radius: 100% !important;
}
/* check boxes */
input[type="checkbox"] {
-moz-appearance: checkbox;
width: 13px;
height: 13px;
margin: 3px 3px 3px 4px;
padding: 0;
vertical-align: text-bottom;
cursor: default;
-moz-binding: none;
-moz-border-radius: 0 !important;
}
/* common features of radio buttons and check boxes */
input[type="radio"],
input[type="checkbox"] {
/* same colors as |input| rule, but |!important| this time. */
-moz-box-sizing: border-box;
background-color: -moz-Field ! important;
color: -moz-FieldText ! important;
border: 2px inset ThreeDFace ! important;
}
input[type="radio"][disabled],
input[type="radio"][disabled]:active,
input[type="radio"][disabled]:hover,
input[type="radio"][disabled]:hover:active,
input[type="checkbox"][disabled],
input[type="checkbox"][disabled]:active,
input[type="checkbox"][disabled]:hover,
input[type="checkbox"][disabled]:hover:active {
padding: 1px;
border: 1px inset ThreeDShadow ! important;
/* same as above, but !important */
color: GrayText ! important;
background-color: ThreeDFace ! important;
}
input[type="checkbox"]:focus,
input[type="radio"]:focus {
border-style: groove !important;
}
input[type="checkbox"]:hover:active,
input[type="radio"]:hover:active {
background-color: ThreeDFace ! important;
border-style: inset !important;
}
*|*:-moz-radio {
width: 4px;
height: 4px;
background-color: -moz-FieldText ! important;
-moz-border-radius: 3px;
}
/* buttons */
/* Note: Values in nsNativeTheme IsWidgetStyled function
need to match button background/border values here */
button,
input[type="reset"],
input[type="button"],
input[type="submit"] {
-moz-appearance: button;
/* The sum of border-top, border-bottom, padding-top, padding-bottom
must be the same here, for text inputs, and for <select>. For
buttons, make sure to include the -moz-focus-inner border/padding. */
padding: 0px 6px 0px 6px;
border: 2px outset ButtonFace;
background-color: ButtonFace;
color: ButtonText;
font: -moz-button;
line-height: normal !important;
white-space: pre;
cursor: default;
-moz-box-sizing: border-box;
-moz-user-select: none;
-moz-user-focus: normal;
-moz-binding: none;
}
button {
/* Buttons should lay out like "normal" html, mostly */
white-space: normal;
}
*|*:-moz-button-content {
display: block;
text-align: center;
}
button:active:hover,
input[type="reset"]:active:hover,
input[type="button"]:active:hover,
input[type="submit"]:active:hover {
padding: 0px 5px 0px 7px;
border-style: inset;
}
button:-moz-focus-inner,
input[type="reset"]:-moz-focus-inner,
input[type="button"]:-moz-focus-inner,
input[type="submit"]:-moz-focus-inner,
input[type="file"] > input[type="button"]:-moz-focus-inner {
padding: 0px 2px 0px 2px;
border: 1px dotted transparent;
}
button:focus:-moz-focus-inner,
input[type="reset"]:focus:-moz-focus-inner,
input[type="button"]:focus:-moz-focus-inner,
input[type="submit"]:focus:-moz-focus-inner,
input[type="file"] > input[type="button"]:focus:-moz-focus-inner {
border-color: ButtonText;
}
button[disabled]:active, button[disabled],
input[type="reset"][disabled]:active,
input[type="reset"][disabled],
input[type="button"][disabled]:active,
input[type="button"][disabled],
select[disabled] > input[type="button"],
select[disabled] > input[type="button"]:active,
input[type="submit"][disabled]:active,
input[type="submit"][disabled] {
/* The sum of border-top, border-bottom, padding-top, padding-bottom
must be the same here and for text inputs */
padding: 1px 6px 1px 6px;
border: 1px outset ButtonShadow;
color: GrayText;
}
@media print {
input, textarea, select, button {
-moz-user-focus: none !important;
-moz-user-input: none !important;
}
input[type="file"] { height: 2em; }
}