Summary

The <position> CSS data type denotes a coordinate in a 2D space used to set a location relative to a box.

A specific coordinate can be given by a two keywords with specific offsets. A keyword represents one edge of the element's box or the center line between two edges: left, right, top, bottom or center (which represents either the center between the left and right edges, or the center between the top or bottom edges, depending on the context).

An offset can be either a relative value, expressed as a <percentage>, or an absolute <length> value. Positive values are offset towards the right or the bottom, whichever is suitable. Negative values are offset in the other directions.

The final position described by the <position> value does not need to be inside the element's box.

If only a single offset is specified, it specifies the x-coordinate. When only a single offset or keyword is specified, and the value for the other axis is assumed to be "center".

Interpolation

Both the abscissa and ordinate values are interpolated independently. As the speed is defined by the same <timing-function> for both, the point will move following a line.

Values

/* 1-value syntax */
keyword                  /* The corresponding edge, the other direction is corresponding to center, the middle of the edge */
<length> or <percentage> /* The position on the x-axis, 50% for the y-axis */

/* 2-value syntax */
keyword keyword          /* A keyword for each direction, the order is irrelevant */
keyword value            /* The value is the offset for the edge defined by the keyword */

Formal syntax

[ [ left | center | right | top | bottom | <percentage> | <length> ] |
                  [ left | center | right | <percentage> | <length> ] [ top | center | bottom | <percentage> | <length> ] |
                  [ center | [ left | right ] [ <percentage> | <length> ]? ] && 
                  [ center | [ top | bottom ] [ <percentage> | <length> ]? ]
                ]

Specifications

Specification Status Comment
CSS Values and Units Module Level 3
The definition of '<position>' in that specification.
Candidate Recommendation Relists links to both definitions with the requirement to be coherent: if CSS Backgrounds and Borders Module Level 3 is supported, its definition of <position> must be used too.
CSS Backgrounds and Borders Module Level 3
The definition of '<position>' in that specification.
Candidate Recommendation Defines <position> explicitly and extends it to support offsets from any edge.
CSS Level 2 (Revision 1)
The definition of '<position>' in that specification.
Recommendation Allows combination of a keyword with a <length>, or <percentage> value.
CSS Level 1
The definition of '<position>' in that specification.
Recommendation Defines <position> anonymously as the value of background-position.

Browser compatibility

Feature Chrome Firefox (Gecko) Internet Explorer Opera Safari
Basic support 1.0 1.0 (1.7 or earlier) 4.0 3.5 1.0 (85)
Combination of a keyword and a <length> or <percentage> 1.0 1.0 (1.7 or earlier) 4.0 3.5 1.0 (85)
Four-value syntax (support for offset from any edge) No support[1] 13.0 (13.0) No support 10.5 No support[1]
Feature Android Firefox Mobile (Gecko) IE Mobile Opera Mobile Safari Mobile
Basic support (Yes) 1.0 (1) (Yes) (Yes) (Yes)
Combination of a keyword and a <length> or <percentage> (Yes) 1.0 (1) (Yes) (Yes) (Yes)
Four-value syntax (support for offset from any edge) No support 13.0 (13.0) ? ? No support

[1] See WebKit bug 37514.

Document Tags and Contributors

 Contributors to this page: mrstork, zhenlilu2003, Sebastianz, fscholz, teoli, kscarfone, Sheppy, majensen1
 Last updated by: mrstork,