Movatterモバイル変換


[0]ホーム

URL:


  1. Web
  2. CSS
  3. <transform-function>
  4. skew()

skew()

Baseline Widely available

This feature is well established and works across many devices and browser versions. It’s been available across browsers since ⁨July 2015⁩.

Theskew()CSSfunction defines a transformation that skews an element on the 2Dplane. Its result is a<transform-function> data type.

Try it

transform: skew(0);
transform: skew(15deg, 15deg);
transform: skew(-0.06turn, 18deg);
transform: skew(0.312rad);
<section>  <img          src="/shared-assets/images/examples/firefox-logo.svg"    width="200" /></section>

This transformation is a shear mapping (transvection) that distortseach point within an element by a certain angle in the horizontal and vertical directions. The effect is as if yougrabbed each corner of the element and pulled them along a certain angle.

The coordinates of each point are modified by a value proportionate to the specified angle and the distance to theorigin. Thus, the farther from the origin a point is, the greater the value added to it.

Syntax

css
skew(ax)skew(ax, ay)

Values

ax

Is an<angle> representing the angle to use to distort the element along the x-axis.

ayOptional

Is an<angle> representing the angle to use to distort the element along the y-axis. If not defined, its default value is0, resulting in a purely horizontal skewing.

Cartesian coordinates onℝ^2Homogeneous coordinates onℝℙ^2Cartesian coordinates onℝ^3Homogeneous coordinates onℝℙ^3
(1tan(ax)tan(ay)1)\left( \begin{array}{cc} 1 & \tan(ax) \\ \tan(ay) & 1 \end{array} \right)
(1tan(ax)0tan(ay)10001)\left( \begin{array}{ccc} 1 & \tan(ax) & 0 \\ \tan(ay) & 1 & 0 \\ 0 & 0 & 1 \end{array} \right)
(1tan(ax)0tan(ay)10001)\left( \begin{array}{ccc} 1 & \tan(ax) & 0 \\ \tan(ay) & 1 & 0 \\ 0 & 0 & 1 \end{array} \right)
(1tan(ax)00tan(ay)10000100001)\left( \begin{array}{cccc} 1 & \tan(ax) & 0 & 0 \\ \tan(ay) & 1 & 0 & 0 \\ 0 & 0 & 1 & 0 \\ 0 & 0 & 0 & 1 \end{array} \right)
[1 tan(ay) tan(ax) 1 0 0]

Formal syntax

<skew()> =
skew([<angle>|<zero>] ,[<angle>|<zero>]?)

Examples

Skewing on the x-axis only

HTML

html
<div>Normal</div><div>Skewed</div>

CSS

css
body {  margin: 20px;}div {  width: 80px;  height: 80px;  background-color: skyblue;}.skewed {  transform: skew(10deg); /* Equal to skewX(10deg) */  background-color: pink;}

Result

Skewing on both axes

HTML

html
<div>Normal</div><div>Skewed</div>

CSS

css
body {  margin: 20px;}div {  width: 80px;  height: 80px;  background-color: skyblue;}.skewed {  transform: skew(10deg, 10deg);  background-color: pink;}

Result

Specifications

Specification
CSS Transforms Module Level 1
# funcdef-transform-skew

Browser compatibility

See also

Help improve MDN

Learn how to contribute

This page was last modified on byMDN contributors.


[8]ページ先頭

©2009-2025 Movatter.jp