IE 에서 selectstart 이벤트에 false 를 리턴하는 것으로 가능 하지만
FF 에서는 -moz-user-select 스타일 속성값을 'none'으로 지정하는 것으로 가능하다. (FF에는 selectstart 이벤트 자체가 존재안함)
스타일 적용시에는 styleSheet 오브젝트의 (document.styleSheets : Array) 메소드를 사용하는데,
IE 에서는 addRule 을 사용
인자값을 3개(필수3개)로,
0번 argument에는 선택자('div', 'p' 등..)를 넣고,
1번 argument에는 스타일 명령("color:blue", "overflow:hidden" 등..)을 넣는다.
2번 argument에는 0부터 시작하는 pages 컬렉션(document.styleSheets[?].pages : Array)에서의 위치할 인수를 넣는다. (-1을 넣으면 제일 뒤에 위치하게 된다.)
반환값은 항상 -1이다. (주의: 오류가 없어도 -1을 반환)
FF 에서는 insertRule 를 사용
인자값은 2개(필수2개)로,
0번 argument에는 스타일 명령을 선택자를 포함하여 넣는다. (예: "#myTable {-moz-user-select:none}")
1번 argument에는 0부터 시작하는 cssRules 컬렉션(document.styleSheets[?].cssRules : Array)에서의 위치할 인수를 넣는다. (주의: addRule과는 다르다, -1 인자값을 넣으면 에러가 난다.)
반환값은 cssRules 컬렉션에서의 위치한 위치값이다.
Style Properties
The following lists some of the custom style properties that Mozilla supports.
Properties:
-moz-appearance
Used to cause an element to take its border, background style and size from the operating system's theme. This causes XUL elements to be drawn similar to the way the user's system draws such elements. This currently only has an effect on Windows XP and Mac OS X.
-moz-background-clip Moz1.2
Indicates whether the background, either the color or image, should extend into the border area of the element. This property is similar to the CSS3 background-clip property.
- border: The background extends into the border of the element. It will be drawn behind the border.
- padding: The background does not extend into the border.
-moz-background-inline-policy Moz1.3
Specifies how the background image of an inline element is determined when the content of the inline element wraps onto multiple lines.
- bounding-box:
- continuous: The background image wraps around on to each line as if the text had no line breaks. For example, if the image is 500 pixels and the inline box is 300 pixels, the first 300 pixels of the image appears on the first line, and the last 200 pixels followed by the first 100 pixels of the image appear on the second line. The image repeats until the end of the content.
- each-box:
-moz-background-origin Moz1.2
Determines how the background-position property is determined. This property is similar to the CSS3 background-origin property.
- content: The position is relative to the content.
- border: The position is relative to the border.
- padding: The position is relative to the padding.
-moz-binding
Used to specify an XBL binding to use for the element. The property should be a URL of an XBL file containing the binding. The URL should contain an anchor to point to a specific binding with the XBL file, referenced by its id attribute.
-moz-border-bottom-colors
Sets the border colors for the bottom edge. It should be set to a list of colors. When an element has a border that is larger than a single pixel, each line of pixels uses the next color specified in this property. This eliminates the need for nested boxes. If the border is wider than the number of colors specified for this property, the remaining part of the border is the color specified by the border property.
-moz-border-left-colors
Sets the border colors for the bottom edge. See the -moz-border-colors-bottom property for more information.
-moz-border-radius
This property can be used to give borders rounded corners. This should be set to a numeric value indicating the amount of rounding to use. You must use a unit (usually px for pixels). A higher number makes the border rounder.
-moz-border-radius-bottomleft
Sets the rounding of the lower left corner of the border.
-moz-border-radius-bottomright
Sets the rounding of the lower right corner of the border.
-moz-border-radius-topleft
Sets the rounding of the upper left corner of the border.
-moz-border-radius-topright
Sets the rounding of the upper right corner of the border.
-moz-border-right-colors
Sets the border colors for the right edge. See the -moz-border-colors-bottom property for more information.
-moz-border-top-colors
Sets the border colors for the top edge. See the -moz-border-colors-bottom property for more information.
-moz-box-align
This property is equivalent to the align attribute. It specifies how child elements of the box are aligned, when the size of the box is larger than the total size of the children. For boxes that have horizontal orientation, it specifies how its children will be aligned vertically. For boxes that have vertical orientation, it is used to specify how its children are algined horizontally. The -moz-box-pack property is related to the alignment but is used to specify the position in the opposite direction.
- start: Child elements are align starting from the left or top edge of the box. If the box is larger than the total size of the children, the extra space is placed on the right or bottom side.
- center: Extra space is split equally along each side of the child elements, resulting the children being placed in the center of the box.
- end: Child elements are placed on the right or bottom edge of the box. If the box is larger than the total size of the children, the extra space is placed on the left or top side.
- baseline: This value applies to horizontally oriented boxes only. It causes the child elements to be aligned so that their text labels are lined up.
- stretch: The child elements are stretched to fit the size of the box. For a horizontal box, the children are stretched to be the height of the box. For a vertical box, the children are stretched to be the width of the box. If the size of the box changes, the children stretch to fit. Use the flex attribute to create elements that stretch in the opposite direction.
-moz-box-direction
Specifies the direction in the which the children of a box are placed.
- normal: Children are placed either from left to right or top to bottom in the order the elements appear in the XUL source or document tree.
- reverse: Children are placed either from right to left or bottom to top in the order the elements appear in the XUL source or document tree.
-moz-box-flex
Indicates the flexibility of an element. Flexible elements grow and shrink to fit their given space. The actual value is not relevant unless there are other flexible elements within the same container. Elements with larger flex values will grow more than elements with lower flex values, at the ratio determined by the two elements.
-moz-box-ordinal-group
Indicates the ordinal group the element belongs to. Elements with a lower ordinal group are displayed before those with a higher ordinal group.
-moz-box-orient
This is the corresponding style property for a XUL element's orient attribute. For elements that are types of boxes, it determines whether the children are laid out horizontally or vertically.
- horizontal: The children of the element are placed horizontally in a row.
- vertical: The children of the element are placed vertically in a column.
-moz-box-pack
This property is equivalent to the pack attribute. It specifies where child elements of the box are placed when the box is larger that the size of the children. For boxes with horizontal orientation, it is used to indicate the position of children horizontally. For boxes with vertical orientation, it is used to indicate the position of children vertically. The -moz-box-align attribute is used to specify the position in the opposite direction.
- start: Child elements are placed starting from the left or top edge of the box. If the box is larger than the total size of the children, the extra space is placed on the right or bottom side.
- center: Extra space is split equally along each side of the child elements, resulting the children being placed in the center of the box.
- end: Child elements are placed on the right or bottom edge of the box. If the box is larger than the total size of the children, the extra space is placed on the left or top side.
-moz-box-sizing
This property determines how the width and height of the element is calculated. It affects the width and height properties.
- content-box: The width and height properties specify the size of the element including the padding.
- border-box: The width and height properties specify the size of the element including the padding and border.
- padding-box: The width and height properties specify the size of the element. The padding, border and margin are added outside of this size.
-moz-image-region
For elements that have an image, this property sets the area of the image that is used. You can set multiple elements to use the same image but use a different region of the image, reducing the amount of memory required. You can change this property to simulate animation. The syntax is similar to the clip property. All four values are relative to the upper left corner of the image.
-moz-image-region: rect(top, right, bottom, left);
-moz-key-equivalent
-moz-opacity
This property can be used to make an element partially transparent. Any content behind the element will be partially visible. This should be a decimal number between 0 and 1, where 0 means invisible and 1 means fully opaque. Thus, 0.5 means half-way between. Newer versions of Mozilla (1.7 and later) support the CSS3 property 'opacity'.
-moz-outline
This property can be used to set the outline of the element. An outline is like a border but has some differences in the way it is drawn. This is similar to the CSS2 outline property which Mozilla does not currently support.
-moz-outline-color
Sets the color of the outline.
-moz-outline-radius
This property can be used to give outlines rounded corners. This should be set to a numeric value indicating the amount of rounding to use. You must use a unit (usually px for pixels). A higher number makes the outline rounder.
-moz-outline-radius-bottomleft
Sets the rounding of the lower left corner of the outline.
-moz-outline-radius-bottomright
Sets the rounding of the lower right corner of the outline.
-moz-outline-radius-topleft
Sets the rounding of the upper left corner of the outline.
-moz-outline-radius-topright
Sets the rounding of the upper right corner of the outline.
-moz-outline-style
Sets the style of the border, which can have the same values as the border-style property.
-moz-outline-width
Sets the width of the outline.
-moz-user-focus
Used to indicate whether the element can have the focus. By setting this to 'ignore', you can disable focusing the element, which means that the user will not be able to activate the element. The element will be skipped in the tab sequence. A similar property 'user-focus' has been proposed for CSS3.
- ignore: The element does not accept the keyboard focus and will be skipped in the tab order.
- normal: The element can accept the keyboard focus.
-moz-user-input
This can be used to indicate whether the value of the element can be modifed. This mainly applies to textboxes.
- disabled: The user cannot edit the value of the textbox. The user may still select text in the textbox.
- enabled: The user can edit the value of the textbox.
-moz-user-select
Used to indicate whether the text of the element can be selected. This doesn't have any affect on content loaded as chrome, except in textboxes. A similar property 'user-select' has been proposed for CSS3.
- none: The text of the element cannot be selected.
- normal: The text can be selected by the user.
display
Although the display property is part of standard CSS, some additional values are allowed, for the XUL layout styles. You can use these values for non-XUL elements too, although they may produce unusual results.
- -moz-box: Child elements are laid out horizontally or vertically.
- -moz-inline-box:
- -moz-grid: Child elements are laid out as a XUL grid.
- -moz-inline-grid:
- -moz-grid-group: Child elements are laid out as a group of grid columns or rows. This is the layout used by the rows and columns elements. You can use the orientation (-moz-box-orient) to set which direction. Rows would normally have vertical orientation and columns would have a horizontal orientation.
- -moz-grid-line: Child elements are laid out as a single column or row of a grid. You can use the orientation (-moz-box-orient) to set which direction.
- -moz-stack: Child elements are laid out one on top of each other like the XUL stack element.
- -moz-inline-stack:
- -moz-deck: Child elements are laid out one on top of each other like the XUL deck element. Unlike a stack, only the top element is displayed.
- -moz-popup:
- -moz-groupbox:
overflow
Mozilla supports some additional values for the overflow property that are not in standard CSS. The overflow property is used to specify what happens when the content is too large for the container.
- -moz-scrollbars-horizontal: Indicates that horizontal scrollbars should appear.
- -moz-scrollbars-vertical: Indicates that vertical scrollbars should appear.
- -moz-scrollbars-none: Indicates that no scrollbars should appear.
출처:: http://www.xulplanet.com/references/elemref/ref_StyleProperties.html