The goog.style Namespace

The goog.style.bidi Namespace

… more

.clearTransparentBackgroundImage(el)

Clears the background image of an element in a browser independent manner.

el {Element}
The element to clear background image for.

The goog.style.cursor Namespace

… more

.getBackgroundColor(element)

Retrieves the computed background color string for a given element. The string returned is suitable for assigning to another element's background-color, but is not guaranteed to be in any particular string format. Accessing the color in a numeric form may not be possible in all browsers or with all input. If the background color for the element is defined as a hexadecimal value, the resulting string can be parsed by goog.color.parse in all supported browsers. Whether named colors like "red" or "lightblue" get translated into a format which can be parsed is browser dependent. Calling this function on transparent elements will return "transparent" in most browsers or "rgba(0, 0, 0, 0)" in WebKit.

element {Element}
The element to get the background color of.
returns {string}
The computed string value of the background color.

.getBorderBox(element)

Gets the computed border widths (on all sides) in pixels

element {Element}
The element to get the border widths for.
returns {!goog.math.Box}
The computed border widths.

.getBorderBoxSize(element)

Gets the border box size for an element.

element {Element}
The element to get the size for.
returns {!goog.math.Size}
The border box size.

.getBounds(element)

Returns a bounding rectangle for a given element in page space.

element {Element}
Element to get bounds of. Must not be display none.
returns {!goog.math.Rect}
Bounding rectangle for the element.

.getCascadedStyle(element, style)

Gets the cascaded style value of a node, or null if the value cannot be computed (only Internet Explorer can do this).

element {Element}
Element to get style of.
style {string}
Property to get (camel-case).
returns {string}
Style value.

.getClientLeftTop(el)

Returns clientLeft (width of the left border and, if the directionality is right to left, the vertical scrollbar) and clientTop as a coordinate object.

el {Element}
Element to get clientLeft for.
returns {!goog.math.Coordinate}
Client left and top.

.getClientPosition(el)

Returns the position of the event or the element's border box relative to the client viewport.

el {Element|Event|goog.events.Event}
Element or a mouse / touch event.
returns {!goog.math.Coordinate}
The position.

.getClientViewportElement(opt_node)

Returns the viewport element for a particular document

opt_node {Node=}
DOM node (Document is OK) to get the viewport element of.
returns {Element}
document.documentElement or document.body.

.getComputedCursor(element)

Retrieves the computed value of the cursor CSS attribute.

element {Element}
The element to get the cursor of.
returns {string}
The computed string value of the cursor attribute.

.getComputedOverflowX(element)

Retrieves the computed value of the overflow-x CSS attribute.

element {Element}
The element to get the overflow-x of.
returns {string}
The computed string value of the overflow-x attribute.

.getComputedOverflowY(element)

Retrieves the computed value of the overflow-y CSS attribute.

element {Element}
The element to get the overflow-y of.
returns {string}
The computed string value of the overflow-y attribute.

.getComputedPosition(element)

Retrieves the computed value of the position CSS attribute.

element {Element}
The element to get the position of.
returns {string}
Position value.

.getComputedStyle(element, property)

Retrieves a computed style value of a node. It returns empty string if the value cannot be computed (which will be the case in Internet Explorer) or "none" if the property requested is an SVG one and it has not been explicitly set (firefox and webkit).

element {Element}
Element to get style of.
property {string}
Property to get (camel-case).
returns {string}
Style value.

.getComputedTextAlign(element)

Retrieves the computed value of the text-align CSS attribute.

element {Element}
The element to get the text-align of.
returns {string}
The computed string value of the text-align attribute.

.getComputedZIndex(element)

Retrieves the computed value of the z-index CSS attribute.

element {Element}
The element to get the z-index of.
returns {string|number}
The computed value of the z-index attribute.

.getContainerOffsetToScrollInto(element, container, opt_center)

Calculate the scroll position of {@code container} with the minimum amount so that the content and the borders of the given {@code element} become visible. If the element is bigger than the container, its top left corner will be aligned as close to the container's top left corner as possible.

element {Element}
The element to make visible.
container {Element}
The container to scroll.
opt_center {boolean=}
Whether to center the element in the container. Defaults to false.
returns {!goog.math.Coordinate}
The new scroll position of the container, in form of goog.math.Coordinate(scrollLeft, scrollTop).

.getContentBoxSize(element)

Gets the content box size for an element. This is potentially expensive in all browsers.

element {Element}
The element to get the size for.
returns {!goog.math.Size}
The content box size.

.getCssTranslation(element)

Returns the x,y translation component of any CSS transforms applied to the element, in pixels.

element {!Element}
The element to get the translation of.
returns {!goog.math.Coordinate}
The CSS translation of the element in px.

.getFloat(el)

Gets value of explicitly-set float CSS property on an element.

el {Element}
The element to get float property of.
returns {string}
The value of explicitly-set float CSS property on this element.

.getFontFamily(el)

Returns the font face applied to a given node. Opera and IE should return the font actually displayed. Firefox returns the author's most-preferred font (whether the browser is capable of displaying it or not.)

el {Element}
The element whose font family is returned.
returns {string}
The font family applied to el.

.getFontSize(el)

Returns the font size, in pixels, of text in an element.

el {Element}
The element whose font size is returned.
returns {number}
The font size (in pixels).

.getFramedPageOffset(el, relativeWin)

Returns a Coordinate object relative to the top-left of an HTML document in an ancestor frame of this element. Used for measuring the position of an element inside a frame relative to a containing frame.

el {Element}
Element to get the page offset for.
relativeWin {Window}
The window to measure relative to. If relativeWin is not in the ancestor frame chain of the element, we measure relative to the top-most window.
returns {!goog.math.Coordinate}
The page offset.

.getLengthUnits(value)

Returns the units used for a CSS length measurement.

value {string}
A CSS length quantity.
returns {?string}
The units of measurement.

.getMarginBox(element)

Gets the computed margins (on all sides) in pixels.

element {Element}
The element to get the margins for.
returns {!goog.math.Box}
The computed margins.

.getOffsetParent(element)

Returns the first parent that could affect the position of a given element.

element {Element}
The element to get the offset parent for.
returns {Element}
The first offset parent or null if one cannot be found.

.getOpacity(el)

Gets the opacity of a node (x-browser). This gets the inline style opacity of the node, and does not take into account the cascaded or the computed style for this node.

el {Element}
Element whose opacity has to be found.
returns {number|string}
Opacity between 0 and 1 or an empty string {@code ''} if the opacity is not set.

.getPaddingBox(element)

Gets the computed paddings (on all sides) in pixels.

element {Element}
The element to get the padding for.
returns {!goog.math.Box}
The computed paddings.

.getPageOffset(el)

Returns a Coordinate object relative to the top-left of the HTML document. Implemented as a single function to save having to do two recursive loops in opera and safari just to get both coordinates. If you just want one value do use goog.style.getPageOffsetLeft() and goog.style.getPageOffsetTop(), but note if you call both those methods the tree will be analysed twice.

el {Element}
Element to get the page offset for.
returns {!goog.math.Coordinate}
The page offset.

.getPageOffsetLeft(el)

Returns the left coordinate of an element relative to the HTML document

el {Element}
Elements.
returns {number}
The left coordinate.

.getPageOffsetTop(el)

Returns the top coordinate of an element relative to the HTML document

el {Element}
Elements.
returns {number}
The top coordinate.

.getPosition(element)

Gets the offsetLeft and offsetTop properties of an element and returns them in a Coordinate object

element {Element}
Element.
returns {!goog.math.Coordinate}
The position.

.getRelativePosition(a, b)

Returns the position of an element relative to another element in the document. A relative to B

a {Element|Event|goog.events.Event}
Element or mouse event whose position we're calculating.
b {Element|Event|goog.events.Event}
Element or mouse event position is relative to.
returns {!goog.math.Coordinate}
The relative position.

.getScrollbarWidth(opt_className)

Returns the scroll bar width (represents the width of both horizontal and vertical scroll).

opt_className {string=}
An optional class name (or names) to apply to the invisible div created to measure the scrollbar. This is necessary if some scrollbars are styled differently than others.
returns {number}
The scroll bar width in px.

.getSize(element)

Gets the height and width of an element, even if its display is none. Specifically, this returns the height and width of the border box, irrespective of the box model in effect.

element {Element}
Element to get size of.
returns {!goog.math.Size}
Object with width/height properties.

.getStyle(element, property)

Retrieves an explicitly-set style value of a node. This returns '' if there isn't a style attribute on the element or if this style property has not been explicitly set in script.

element {Element}
Element to get style of.
property {string}
Property to get, css-style (if you have a camel-case property, use element.style[style]).
returns {string}
Style value.

.getViewportPageOffset(doc)

Calculates the viewport coordinates relative to the page/document containing the node. The viewport may be the browser viewport for non-iframe document, or the iframe container for iframe'd document.

doc {!Document}
The document to use as the reference point.
returns {!goog.math.Coordinate}
The page offset of the viewport.

.getVisibleRectForElement(element)

Calculates and returns the visible rectangle for a given element. Returns a box describing the visible portion of the nearest scrollable offset ancestor. Coordinates are given relative to the document.

element {Element}
Element to get the visible rect for.
returns {goog.math.Box}
Bounding elementBox describing the visible rect or null if scrollable ancestor isn't inside the visible viewport.

.installStyles(stylesString, opt_node)

Installs the styles string into the window that contains opt_element. If opt_element is null, the main window is used.

stylesString {string}
The style string to install.
opt_node {Node=}
Node whose parent document should have the styles installed.
returns {Element|StyleSheet}
The style element created.

.isElementShown(el)

Test whether the given element has been shown or hidden via a call to {@link #showElement}. Note this is strictly a companion method for a call to {@link #showElement} and the same caveats apply; in particular, this method does not guarantee that the return value will be consistent with whether or not the element is actually visible.

el {Element}
The element to test.
returns {boolean}
Whether the element has been shown.
@see
#showElement

.isRightToLeft(el)

Returns true if the element is using right to left (rtl) direction.

el {Element}
The element to test.
returns {boolean}
True for right to left, false for left to right.

.isUnselectable(el)

Returns true if the element is set to be unselectable, false otherwise. Note that on some platforms (e.g. Mozilla), even if an element isn't set to be unselectable, it will behave as such if any of its ancestors is unselectable.

el {Element}
Element to check.
returns {boolean}
Whether the element is set to be unselectable.

.parseStyleAttribute(value)

Parses a style attribute value. Converts CSS property names to camel case.

value {string}
The style attribute value.
returns {!Object}
Map of CSS properties to string values.

.scrollIntoContainerView(element, container, opt_center)

Changes the scroll position of {@code container} with the minimum amount so that the content and the borders of the given {@code element} become visible. If the element is bigger than the container, its top left corner will be aligned as close to the container's top left corner as possible.

element {Element}
The element to make visible.
container {Element}
The container to scroll.
opt_center {boolean=}
Whether to center the element in the container. Defaults to false.

.setBorderBoxSize(element, size)

Sets the border box size of an element. This is potentially expensive in IE if the document is CSS1Compat mode

element {Element}
The element to set the size on.
size {goog.math.Size}
The new size.

.setContentBoxSize(element, size)

Sets the content box size of an element. This is potentially expensive in IE if the document is BackCompat mode.

element {Element}
The element to set the size on.
size {goog.math.Size}
The new size.

.setFloat(el, value)

Sets CSS float property on an element.

el {Element}
The element to set float property on.
value {string}
The value of float CSS property to set on this element.

.setHeight(element, height)

Set the height of an element. Sets the element's style property.

element {Element}
Element to set the height of.
height {string|number}
The height value to set. If a number, 'px' will be appended, otherwise the value will be applied directly.

.setInlineBlock(el)

Sets 'display: inline-block' for an element (cross-browser).

el {Element}
Element to which the inline-block display style is to be applied.
@see
../demos/inline_block_quirks.html
@see
../demos/inline_block_standards.html

.setOpacity(el, alpha)

Sets the opacity of a node (x-browser).

el {Element}
Elements whose opacity has to be set.
alpha {number|string}
Opacity between 0 and 1 or an empty string {@code ''} to clear the opacity.

.setPageOffset(el, x, opt_y)

Moves an element to the given coordinates relative to the client viewport.

el {Element}
Absolutely positioned element to set page offset for. It must be in the document.
x {number|goog.math.Coordinate}
Left position of the element's margin box or a coordinate object.
opt_y {number=}
Top position of the element's margin box.

.setPosition(el, arg1, opt_arg2)

Sets the top/left values of an element. If no unit is specified in the argument then it will add px. The second argument is required if the first argument is a string or number and is ignored if the first argument is a coordinate.

el {Element}
Element to move.
arg1 {string|number|goog.math.Coordinate}
Left position or coordinate.
opt_arg2 {string|number=}
Top position.

.setPreWrap(el)

Sets 'white-space: pre-wrap' for a node (x-browser). There are as many ways of specifying pre-wrap as there are browsers. CSS3/IE8: white-space: pre-wrap; Mozilla: white-space: -moz-pre-wrap; Opera: white-space: -o-pre-wrap; IE6/7: white-space: pre; word-wrap: break-word;

el {Element}
Element to enable pre-wrap for.

.setSize(element, w, opt_h)

Sets the width/height values of an element. If an argument is numeric, or a goog.math.Size is passed, it is assumed to be pixels and will add 'px' after converting it to an integer in string form. (This just sets the CSS width and height properties so it might set content-box or border-box size depending on the box model the browser is using.)

element {Element}
Element to set the size of.
w {string|number|goog.math.Size}
Width of the element, or a size object.
opt_h {string|number=}
Height of the element. Required if w is not a size object.

.setStyle(element, style, opt_value)

Sets a style value on an element. This function is not indended to patch issues in the browser's style handling, but to allow easy programmatic access to setting dash-separated style properties. An example is setting a batch of properties from a data object without overwriting old styles. When possible, use native APIs: elem.style.propertyKey = 'value' or (if obliterating old styles is fine) elem.style.cssText = 'property1: value1; property2: value2'.

element {Element}
The element to change.
style {string|Object}
If a string, a style name. If an object, a hash of style names to style values.
opt_value {string|number|boolean=}
If style was a string, then this should be the value.

.setStyles(element, stylesString)

Sets the content of a style element. The style element can be any valid style element. This element will have its content completely replaced by the new stylesString.

element {Element|StyleSheet}
A stylesheet element as returned by installStyles.
stylesString {string}
The new content of the stylesheet.

.setTransparentBackgroundImage(el, src)

Sets the background of an element to a transparent image in a browser- independent manner. This function does not support repeating backgrounds or alternate background positions to match the behavior of Internet Explorer. It also does not support sizingMethods other than crop since they cannot be replicated in browsers other than Internet Explorer.

el {Element}
The element to set background on.
src {string}
The image source URL.

.setUnselectable(el, unselectable, opt_noRecurse)

Makes the element and its descendants selectable or unselectable. Note that on some platforms (e.g. Mozilla), even if an element isn't set to be unselectable, it will behave as such if any of its ancestors is unselectable.

el {Element}
The element to alter.
unselectable {boolean}
Whether the element and its descendants should be made unselectable.
opt_noRecurse {boolean=}
Whether to only alter the element's own selectable state, and leave its descendants alone; defaults to false.

.setWidth(element, width)

Set the width of an element. Sets the element's style property.

element {Element}
Element to set the width of.
width {string|number}
The width value to set. If a number, 'px' will be appended, otherwise the value will be applied directly.

.showElement(el, display)

Shows or hides an element from the page. Hiding the element is done by setting the display property to "none", removing the element from the rendering hierarchy so it takes up no space. To show the element, the default inherited display property is restored (defined either in stylesheets or by the browser's default style rules.) Caveat 1: if the inherited display property for the element is set to "none" by the stylesheets, that is the property that will be restored by a call to showElement(), effectively toggling the display between "none" and "none". Caveat 2: if the element display style is set inline (by setting either element.style.display or a style attribute in the HTML), a call to showElement will clear that setting and defer to the inherited style in the stylesheet.

el {Element}
Element to show or hide.
display {*}
True to render the element in its default style, false to disable rendering the element.

.toStyleAttribute(obj)

Reverse of parseStyleAttribute; that is, takes a style object and returns the corresponding attribute value. Converts camel case property names to proper CSS selector names.

obj {Object}
Map of CSS properties to values.
returns {string}
The style attribute value.

The goog.style.transition Namespace

… more

.translateRectForAnotherFrame(rect, origBase, newBase)

Translates the specified rect relative to origBase page, for newBase page. If origBase and newBase are the same, this function does nothing.

rect {goog.math.Rect}
The source rectangle relative to origBase page, and it will have the translated result.
origBase {goog.dom.DomHelper}
The DomHelper for the input rectangle.
newBase {goog.dom.DomHelper}
The DomHelper for the resultant coordinate. This must be a DOM for an ancestor frame of origBase or the same as origBase.

.uninstallStyles(styleSheet)

Removes the styles added by {@link #installStyles}.

styleSheet {Element|StyleSheet}
The value returned by {@link #installStyles}.