diff --git a/files/zh-cn/web/css/css_transforms/using_css_transforms/index.md b/files/zh-cn/web/css/css_transforms/using_css_transforms/index.md
index 8adcae66d9731c..fade3b09912127 100644
--- a/files/zh-cn/web/css/css_transforms/using_css_transforms/index.md
+++ b/files/zh-cn/web/css/css_transforms/using_css_transforms/index.md
@@ -1,72 +1,538 @@
---
-title: 使用 CSS 变形
+title: 使用 CSS 变换
slug: Web/CSS/CSS_Transforms/Using_CSS_transforms
---
{{CSSRef}}
-通过改变坐标空间,**CSS transforms** 可以在不影响正常文档流的情况下改变作用内容的位置。这篇指南提供了有关使用 CSS 变形(CSS transforms)的介绍。
+通过改变坐标空间,**CSS 变换**(CSS transform)可以在不影响正常文档流的情况下改变作用内容的位置。这篇指南提供了有关使用 CSS 变换的介绍。
-CSS transforms 通过一系列 CSS 属性实现,通过使用这些属性,可以对 HTML 元素进行线性仿射变形(affine linear transformations)。可以进行的变形包括旋转,倾斜,缩放以及位移,这些变形同时适用于平面与三维空间。
+CSS 变换通过一系列 CSS 属性实现,通过使用这些属性,可以对 HTML 元素进行线性仿射变换(affine linear transformation)。可以进行的变换包括旋转、倾斜、缩放以及位移,这些变换同时适用于平面与三维空间。
-> **警告:** 只有使用[盒模型](/zh-CN/docs/Web/CSS/CSS_Box_Model)(Box Model)来定位的元素可以*被变换*(`transform`ed)。根据一般经验(原文:As a rule of thumb),拥有 `display: block` 的元素是由盒模型定位的。
+> **警告:** 只有使用[盒模型](/zh-CN/docs/Web/CSS/CSS_Box_Model)(Box Model)来定位的元素可以*被变换*(`transform`ed)。拥有 `display: block` 的元素是由盒模型定位的。
-## CSS transforms 属性
+## CSS 变换属性
-有两个主要的属性被用来定义 CSS transforms:{{cssxref("transform")}} 和 {{cssxref("transform-origin")}}
+有两个主要的属性被用来定义 CSS 变换:{{cssxref("transform")}}(或单独的 {{cssxref('translate')}}、{{cssxref('rotate')}} 以及 {{cssxref('scale')}} 属性)和 {{cssxref("transform-origin")}}。
- {{cssxref("transform-origin")}}
- - : 指定原点的位置。默认值为元素的中心,可以被移动。很多变形需要用到这个属性,比如旋转,缩放和倾斜,他们都需要一个指定的点作为参数。
+ - : 指定原点的位置。默认值为元素的中心,可以被移动。很多变换需要用到这个属性,比如旋转、缩放和倾斜,它们都需要一个指定的点作为参数。
- {{cssxref("transform")}}
- - : 指定作用在元素上的变形。取值为空格分隔的一系列变形的列表,他们会像被组合操作请求一样被分别执行。
+ - : 指定作用在元素上的变换。取值为空格分隔的一系列变换的列表,它们会像被组合操作请求一样被分别执行。复合变换按从右到左的顺序高效地应用。
## 示例
这是一个未经任何变换的 MDN 标志:
-![MDN Logo](screen_shot_2016-02-16_at_15.53.54.png)
+![MDN Logo](logo.png)
### 旋转
-这是一个在 iframe 中的 MDN 的标志,从左下角开始,旋转了 90 度。
+这是从左下角开始旋转 90 度后的 MDN 徽标。
```html
-
+
```
-{{EmbedLiveSample('Rotating', 'auto', 240) }}
+{{EmbedLiveSample('旋转', 'auto', 240) }}
### 倾斜与位移
还是 MDN 的标志,倾斜了 10 度,并从 X 轴位移了 150 个像素。
```html
-
+ src="logo.png"
+ alt="MDN logo" />
```
-{{EmbedLiveSample('Skewing_and_translating') }}
+{{EmbedLiveSample('倾斜与位移') }}
## 适用于三维的属性
-在三维空间中使用 CSS 变形会稍微复杂一点。你必须先设置一个透视点(perspective)以便配置 3D 空间,再去定义 2D 元素在空间中的行为。
+在三维空间中使用 CSS 变换会稍微复杂一点。你必须先设置一个透视点(perspective)以便配置 3D 空间,再去定义 2D 元素在空间中的行为。
### 透视
-首先需要设置的属性是透视值({{cssxref("perspective")}})。透视正是三维空间的立体感的源泉。元素与观察者之间的距离越远,他们就越小。
+首先需要设置的属性是透视值({{cssxref("perspective")}})。透视正是三维空间的立体感的源泉。元素与观察者之间的距离越远,它们就越小。
+
+#### 设定 perspective
+
+该实例展示了一个以不同的位置进行透视的立方体。立方体收缩的的速度由 {{ cssxref("perspective") }} 属性定义。其值越小,视角越深。
+
+##### HTML
+
+下面的 HTML 创建了同一个框的四个副本,设定不同的透视值。
+
+```html
+
+
+
+ perspective: 250px; |
+ perspective: 350px; |
+
+
+
+
+
+ 1
+ 2
+ 3
+ 4
+ 5
+ 6
+
+
+ |
+
+
+
+ 1
+ 2
+ 3
+ 4
+ 5
+ 6
+
+
+ |
+
+
+ perspective: 500px; |
+ perspective: 650px; |
+
+
+
+
+
+ 1
+ 2
+ 3
+ 4
+ 5
+ 6
+
+
+ |
+
+
+
+ 1
+ 2
+ 3
+ 4
+ 5
+ 6
+
+
+ |
+
+
+
+```
+
+##### CSS
+
+CSS 设定了可用于将透视值设定为不同距离的类。它还包括容器和与立方体本身(以及它的每一个面)的类。
+
+```css
+/* Shorthand classes for different perspective values */
+.pers250 {
+ perspective: 250px;
+}
+
+.pers350 {
+ perspective: 350px;
+}
+
+.pers500 {
+ perspective: 500px;
+}
+
+.pers650 {
+ perspective: 650px;
+}
+
+/* Define the container div, the cube div, and a generic face */
+.container {
+ width: 200px;
+ height: 200px;
+ margin: 75px 0 0 75px;
+ border: none;
+}
+
+.cube {
+ width: 100%;
+ height: 100%;
+ backface-visibility: visible;
+ perspective-origin: 150% 150%;
+ transform-style: preserve-3d;
+}
+
+.face {
+ display: block;
+ position: absolute;
+ width: 100px;
+ height: 100px;
+ border: none;
+ line-height: 100px;
+ font-family: sans-serif;
+ font-size: 60px;
+ color: white;
+ text-align: center;
+}
+
+/* Define each face based on direction */
+.front {
+ background: rgba(0, 0, 0, 0.3);
+ transform: translateZ(50px);
+}
+
+.back {
+ background: rgba(0, 255, 0, 1);
+ color: black;
+ transform: rotateY(180deg) translateZ(50px);
+}
+
+.right {
+ background: rgba(196, 0, 0, 0.7);
+ transform: rotateY(90deg) translateZ(50px);
+}
+
+.left {
+ background: rgba(0, 0, 196, 0.7);
+ transform: rotateY(-90deg) translateZ(50px);
+}
+
+.top {
+ background: rgba(196, 196, 0, 0.7);
+ transform: rotateX(90deg) translateZ(50px);
+}
+
+.bottom {
+ background: rgba(196, 0, 196, 0.7);
+ transform: rotateX(-90deg) translateZ(50px);
+}
+
+/* Make the table a little nicer */
+th,
+p,
+td {
+ background-color: #eeeeee;
+ padding: 10px;
+ font-family: sans-serif;
+ text-align: left;
+}
+```
+
+##### 结果
-{{page("/en-US/docs/Web/CSS/perspective", "Setting perspective", 0, 0, 3)}}
+{{EmbedLiveSample('设定 perspective', 660, 700)}}
+
+要配置的第二个元素是观察者(viewer)的位置,带有 {{ cssxref("perspective-origin") }} 属性。默认情况下,视角以观察者为中心,但这并不总是足够的。
+
+#### 改变透视原点
+
+该实例展示了带有流行的 `perspective-origin` 值的立方体。
+
+##### HTML
+
+```html
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+```
+
+##### CSS
+
+```css
+/* perspective-origin values (unique per example) */
+.potl {
+ perspective-origin: top left;
+}
+.potm {
+ perspective-origin: top;
+}
+.potr {
+ perspective-origin: top right;
+}
+.poml {
+ perspective-origin: left;
+}
+.pomm {
+ perspective-origin: 50% 50%;
+}
+.pomr {
+ perspective-origin: right;
+}
+.pobl {
+ perspective-origin: bottom left;
+}
+.pobm {
+ perspective-origin: bottom;
+}
+.pobr {
+ perspective-origin: bottom right;
+}
+.po200200neg {
+ perspective-origin: -200% -200%;
+}
+.po200200pos {
+ perspective-origin: 200% 200%;
+}
+.po200200 {
+ perspective-origin: 200% -200%;
+}
+
+/* Define the container div, the cube div, and a generic face */
+.container {
+ width: 100px;
+ height: 100px;
+ margin: 24px;
+ border: none;
+}
+
+.cube {
+ width: 100%;
+ height: 100%;
+ backface-visibility: visible;
+ perspective: 300px;
+ transform-style: preserve-3d;
+}
+
+.face {
+ display: block;
+ position: absolute;
+ width: 100px;
+ height: 100px;
+ border: none;
+ line-height: 100px;
+ font-family: sans-serif;
+ font-size: 60px;
+ color: white;
+ text-align: center;
+}
+
+/* Define each face based on direction */
+.front {
+ background: rgba(0, 0, 0, 0.3);
+ transform: translateZ(50px);
+}
+.back {
+ background: rgba(0, 255, 0, 1);
+ color: black;
+ transform: rotateY(180deg) translateZ(50px);
+}
+.right {
+ background: rgba(196, 0, 0, 0.7);
+ transform: rotateY(90deg) translateZ(50px);
+}
+.left {
+ background: rgba(0, 0, 196, 0.7);
+ transform: rotateY(-90deg) translateZ(50px);
+}
+.top {
+ background: rgba(196, 196, 0, 0.7);
+ transform: rotateX(90deg) translateZ(50px);
+}
+.bottom {
+ background: rgba(196, 0, 196, 0.7);
+ transform: rotateX(-90deg) translateZ(50px);
+}
+
+/* Make the layout a little nicer */
+section {
+ background-color: #eee;
+ padding: 10px;
+ font-family: sans-serif;
+ text-align: left;
+ display: grid;
+ grid-template-columns: repeat(3, 1fr);
+}
+```
-第二个需要设置的是观察者的位置,可通过 {{cssxref("perspective-origin")}} 属性来设置。默认透视值中,为观察者被置于中心,但是这并不总是适当的。
+##### Result
-{{page("/en-US/docs/Web/CSS/perspective-origin", "Changing the perspective origin", 0, 0, 3)}}
+{{EmbedLiveSample('改变透视原点', '100%', 700)}}
-完成这些之后,你就可以折腾被置于三维空间之中的元素了。
+完成此操作后,你可以在 3D 空间中处理元素。
## 参见
-- [Using deviceorientation with 3D Transforms](/zh-CN/docs/DOM/Using_device_orientation_with_3D_transforms)
-- [Intro to CSS 3D transforms](http://desandro.github.com/3dtransforms/)(由 David DeSandro 撰写的博客)
+- [CSS `transform` 属性](/zh-CN/docs/Web/CSS/transform)和 [CSS `` 数据类型](/zh-CN/docs/Web/CSS/transform-function)
+- 单独的变换属性:{{cssxref('translate')}}、{{cssxref('rotate')}} 和 {{cssxref('scale')}}(没有 `skew` 属性)
+- [将设备方向与 3D 变换结合使用](/zh-CN/docs/Web/API/Device_orientation_events/Using_device_orientation_with_3D_transforms)
+- [CSS 3D 变换简介](https://3dtransforms.desandro.com/)(由 David DeSandro 撰写的博客)
+- [CSS 变换 Playground](https://css-transform.moro.es/)(CSS 变换函数可视化的在线工具)
diff --git a/files/zh-cn/web/css/css_transforms/using_css_transforms/screen_shot_2016-02-16_at_15.53.54.png b/files/zh-cn/web/css/css_transforms/using_css_transforms/screen_shot_2016-02-16_at_15.53.54.png
deleted file mode 100644
index 13da432059deab..00000000000000
Binary files a/files/zh-cn/web/css/css_transforms/using_css_transforms/screen_shot_2016-02-16_at_15.53.54.png and /dev/null differ