--- title: transform-origin slug: Web/CSS/transform-origin tags: - CSS translation_of: Web/CSS/transform-origin ---
{{ CSSRef }}

CSS 內的transform-origin屬性可以設定元素變化的原點。

{{EmbedInteractiveExample("pages/css/transform-origin.html")}}

變化原點指的是應用變化的點。舉例來說, rotate()函數的原點為旋轉中心。 (This property is applied by first translating the element by the negated value of the property, then applying the element's transform, then translating by the property value.)

語法

/* One-value syntax */
transform-origin: 2px;
transform-origin: bottom;

/* x-offset | y-offset */
transform-origin: 3cm 2px;

/* x-offset-keyword | y-offset */
transform-origin: left 2px;

/* x-offset-keyword | y-offset-keyword */
transform-origin: right top;

/* y-offset-keyword | x-offset-keyword */
transform-origin: top right;

/* x-offset | y-offset | z-offset */
transform-origin: 2px 30% 10px;

/* x-offset-keyword | y-offset | z-offset */
transform-origin: left 5px -3px;

/* x-offset-keyword | y-offset-keyword | z-offset */
transform-origin: right bottom 2cm;

/* y-offset-keyword | x-offset-keyword | z-offset */
transform-origin: bottom right 2cm;

/* Global values */
transform-origin: inherit;
transform-origin: initial;
transform-origin: unset;

The transform-origin p屬性可以使用多次,每一次都代表著一個偏移量。若未設定偏移量,則重置為其對應的 初始值

If two or more values are defined and either no value is a keyword, or the only used keyword is center, then the first value represents the horizontal offset and the second represents the vertical offset.

Values

x-offset
Is a {{cssxref("<length>")}} or a {{cssxref("<percentage>")}} describing how far from the left edge of the box the origin of the transform is set.
offset-keyword
Is one of the left, right, top, bottom, or center keyword describing the corresponding offset.
y-offset
Is a {{cssxref("<length>")}} or a {{cssxref("<percentage>")}} describing how far from the top edge of the box the origin of the transform is set.
x-offset-keyword
Is one of the left, right, or center keyword describing how far from the left edge of the box the origin of the transform is set.
y-offset-keyword
Is one of the top, bottom, or center keyword describing how far from the top edge of the box the origin of the transform is set.
z-offset
Is a {{cssxref("<length>")}} (and never a {{cssxref("<percentage>")}} which would make the statement invalid) describing how far from the user eye the z=0 origin is set.

The keywords are convenience shorthands and match the following {{cssxref("<percentage>")}} values:

Keyword Value
left 0%
center 50%
right 100%
top 0%
bottom 100%

Formal syntax

{{csssyntax}}

Examples

Code Sample

transform: none;

{{EmbedLiveSample('transform_none', '', 120, '', '', 'no-button') }}

transform: rotate(30deg);

{{EmbedLiveSample('transform_rotate_only', '', 120, '', '', 'no-button') }}

transform: rotate(30deg);
transform-origin: 0 0;

{{EmbedLiveSample('transform_rotate', '', 120, '', '', 'no-button') }}

transform: rotate(30deg);
transform-origin: 100% 100%;

{{EmbedLiveSample('transform_rotate_with_percentage', '', 120, '', '', 'no-button') }}

transform: rotate(30deg);
transform-origin: -1em -3em;

{{EmbedLiveSample('transform_rotate_with_em', '', 120, '', '', 'no-button') }}

transform: scale(1.7);

{{EmbedLiveSample('transform_scale_only', '', 120, '', '', 'no-button') }}

transform: scale(1.7);
transform-origin: 0 0;

{{EmbedLiveSample('transform_scale_without_origin', '', 120, '', '', 'no-button') }}

transform: scale(1.7);
transform-origin: 100% -30%;

{{EmbedLiveSample('transform_scale', '', 120, '', '', 'no-button') }}

transform: skewX(50deg);
transform-origin: 100% -30%;

{{EmbedLiveSample('transform_skew_x', '', 120, '', '', 'no-button') }}

transform: skewY(50deg);
transform-origin: 100% -30%;

{{EmbedLiveSample('transform_skew_y', '', 120, '', '', 'no-button') }}

Specifications

Specification Status Comment
{{ SpecName('CSS3 Transforms', '#transform-origin-property', 'transform-origin') }} {{ Spec2('CSS3 Transforms') }}  

{{Cssinfo}}

Browser compatibility

{{Compat("css.properties.transform-origin")}}

See also