skewX()

Baseline 已广泛支持

此特性已相当成熟,可在许多设备和浏览器版本上使用。自 ⁨2015 年 7 月⁩以来,各浏览器均已提供此特性。

skewX() CSS 函数定义了一个在2D平面上沿水平方向倾斜元素的转换。其结果是 <transform-function> 数据类型。

试一试

transform: skewX(0);
transform: skewX(35deg);
transform: skewX(-0.06turn);
transform: skewX(0.352rad);
<section id="default-example">
  <img
    class="transition-all"
    id="example-element"
    src="/shared-assets/images/examples/firefox-logo.svg"
    width="200" />
</section>

此转换是一种剪切映射(transvection),它通过在水平方向上以特定角度扭曲元素内的每个点来使其变形。每个点的横坐标(水平,x轴坐标)都由一个与指定角度和到原点的距离成比例的值进行修改;因此,离原点越远的点,添加的值就越大。

注意: skewX(a) 等同于 skew(a)

语法

css
skewX(a)

a

这是一个 <angle>,表示用于沿横坐标(水平,x轴坐标)扭曲元素的角度。

笛卡尔坐标,在 ℝ^2 齐次坐标,在 ℝℙ^2 笛卡尔坐标,在 ℝ^3 齐次坐标,在 ℝℙ^3
(1tan(a)01)\left( \begin{array}{cc} 1 & \tan(a) \\ 0 & 1 \end{array} \right)
(1tan(a)0010001)\left( \begin{array}{ccc} 1 & \tan(a) & 0 \\ 0 & 1 & 0 \\ 0 & 0 & 1 \end{array} \right)
(1tan(a)0010001)\left( \begin{array}{ccc} 1 & \tan(a) & 0 \\ 0 & 1 & 0 \\ 0 & 0 & 1 \end{array} \right)
(1tan(a)00010000100001)\left( \begin{array}{cccc} 1 & \tan(a) & 0 & 0 \\ 0 & 1 & 0 & 0 \\ 0 & 0 & 1 & 0 \\ 0 & 0 & 0 & 1 \end{array} \right)
[1 0 tan(a) 1 0 0]

正式语法

<skewX()> = 
skewX( [ <angle> | <zero> ] )

示例

HTML

html
<div>Normal</div>
<div class="skewed">Skewed</div>

CSS

css
div {
  width: 80px;
  height: 80px;
  background-color: skyblue;
}

.skewed {
  transform: skewX(10deg); /* Equal to skew(10deg) */
  background-color: pink;
}

结果

规范

规范
CSS 变换模块级别 1
# funcdef-transform-skewx

浏览器兼容性

另见