CSS3-transform 2D转换


transform 转换,是CSS3最具颠覆性的特性之一,既可以应用2D转换,也可以应用3D转换。

2D转换:通过该属性可以对元素在平面上进行缩放、旋转、移动和斜切等操作。

通过 transform 中的方法对元素进行缩放、移动等不同于传统方法(设置 width、height等)会影响页面的布局,transform 中的方法并不会影响页面的布局。

缩放

通过 scale() 方法将元素根据中心原点进行缩放;可以单独进行横向或纵向缩放也可以综合设置。scale() 方法接收的值为数字类型没有单位,如果值大于 1 则对元素进行放大,如果值小于 1 则进行缩小。

scaleX(x)

仅对元素进行水平方向的缩放(X轴缩放)

语法:

/* x X轴缩放的值 */
transform: scaleX(x)

示例:

CSS:

.box div {
  /* 设置浮动 */
  float: left;
  width: 200px;
  height: 100px;
  margin: 20px 10px;
  background-color: skyblue;
}

.box div:nth-child(2) {
  background: purple;
  /* 设置过渡 */
  transition: transform 1s;
}

.box div:nth-child(2):hover {
  /* 设置水平方向缩放 */
  transform: scaleX(1.5);
}

HTML:

<div class="box">
  <div></div>
  <div></div>
  <div></div>
</div>

在这里插入图片描述

scaleY(y)

仅对元素进行垂直方向的缩放(Y轴缩放)

语法:

/* y Y轴方向缩放的值 */
transform: scaleY(y)

CSS:

.box div:nth-child(2):hover {
  /* 设置垂直方向缩放 */
  transform: scaleY(1.5);
}

在这里插入图片描述

scale(x, y)

对元素的水平和垂直方向同时进行缩放;如果只有一个值会进行等比例缩放。

transform: scale(x, y)

CSS:

.box div:nth-child(2):hover {
   /* 同时缩放 */
   transform: scale(1.5, .5);
 }

在这里插入图片描述

transform-origin

transform-origin 属性用于设置元素的基点位置,默认为元素的中心点位置

语法:

transform-origin: x-axis y-axis z-axis;
  • x-axis X 轴基点
  • y-axis Y 轴基点
  • z-axis Z 轴基点

属性值可以是px、百分比等具体的值,也可以是 top、right、bottom、left和center这样的关键词;作为 2D 转换时,属性值至少为一个,另一个默认为 Y 轴中心点。

示例:

.box div:nth-child(2) {
  /* ... */
  /* 设置元素转换的基点 */
  transform-origin: left top;
}

在这里插入图片描述

平移

平移是通过 translate() 方法来实现;同样可以单独设置水平或垂直方向也可以综合设置。

水平方向值为正时向右平移,垂直方向值为正时向下平移;单位可以使用 px、% 等。

translateX(x)

设置水平方向的平移

示例:

CSS:

.box div {
  /* 设置浮动 */
  float: left;
  width: 200px;
  height: 100px;
  margin: 20px 10px;
  background-color: pink;
}

.box div:nth-child(2) {
  background: purple;
  /* 设置过渡 */
  transition: transform 1s;
}

.box div:nth-child(2):hover {
  /* 设置水平方向的平移 */
  transform: translateX(100px);
}

HTML:

<div class="box">
  <div></div>
  <div></div>
  <div></div>
</div>

在这里插入图片描述

translateY(y)

设置垂直方向的平移

.box div:nth-child(2):hover {
  /* 设置垂直方向的平移 */
  transform: translateY(-20px);
}

在这里插入图片描述

translate(x, y)

同时设置水平和垂直方向的平移;只设置一个值时另一个默认为 0。

.box div:nth-child(2):hover {
  /* 同时设置 */
  transform: translate(100px, -20px);
}

在这里插入图片描述

旋转

通过 rotate() 方法实现旋转,在 2D 旋转中可以单独设置元素X轴或Y轴方向的旋转,也可以设置元素在平面上的旋转(顺时针或逆时针旋转)。

rotateX(angle)

沿着 X 轴进行旋转;angle 旋转的角度,单位为 deg;旋转的轴默认为元素的高的中心位置。
CSS:

.box {
  width: 200px;
  height: 200px;
  margin: 10px;
  background-color: #ccc;
  border: 1px solid gray;
}

.box div {
  width: 100%;
  height: 100%;
  font-size: 36px;
  text-align: center;
  line-height: 200px;
  background: pink;
  /* 过渡 */
  transition: transform 1000ms;
}

.box div:hover {
  /* 设置沿 X 轴旋转 */
  transform: rotateX(60deg)
}

HTML:

<div class="box">
  <div>2D 旋转</div>
</div>

在这里插入图片描述

rotateY(angle)

沿着 Y 轴进行旋转;旋转的轴默认为元素的宽的中心位置

CSS:

.box div:hover {
  /* 设置沿 Y 轴旋转 */
  transform: rotateY(60deg)
}

在这里插入图片描述

rotate(angle)

设置元素在平面上的旋转;为正值顺时针旋转为负值时逆时针旋转;旋转的基点默认为元素的中心位置。

CSS:

.box div:hover {
  /* 平面旋转 */
  transform: rotate(60deg)
}

在这里插入图片描述

斜切
skewX(angle)

沿着 X 轴进行斜切;保持高度

示例:

CSS:

.box {
  margin: 20px;
  width: 100px;
  height: 100px;
  background-color: #ccc;
  border: 1px dashed gray;
}

.box div {
  width: 100px;
  height: 100px;
  font-size: 24px;
  text-align: center;
  line-height: 100px;
  background: skyblue;
  
  /* 过渡 */
  transition: transform 1000ms;
}

.box div:hover {
  /* 沿 X 轴进行斜切 */
  transform: skewX(30deg);
}

在这里插入图片描述

skewY(angle)

沿着 Y 轴进行斜切;保持宽度

CSS:

.box div:hover {
  /* 沿 Y 轴进行斜切 */
  transform: skewY(30deg);
}

在这里插入图片描述

skew(x-angle, y-angle)

综合设置,X轴和Y轴同时倾斜

.box div:hover {
  /* 综合设置 */
  transform: skew(30deg, 30deg);
}

在这里插入图片描述
使用 transform 进行转换时也可以多个效果一块设置,之间用空格隔开即可;需要注意的是旋转效果要放在最后面,因为旋转会改变元素的坐标,会出现意想不到的效果。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: -webkit-transform 是一个 CSS 属性,用于为元素应用 2D 或 3D 转换。它是 Webkit 内核浏览器(例如 Chrome 和 Safari)的私有属性,但由于其流行,现在已经成为了一个标准属性。 以下是一个示例,将一个元素旋转 45 度: ```css div { -webkit-transform: rotate(45deg); transform: rotate(45deg); /* 标准语法 */ } ``` 该代码应用了一个旋转变换,使 `<div>` 元素绕其中心点顺时针旋转 45 度。`-webkit-transform` 属性是 Webkit 浏览器的私有属性,而 `transform` 属性是标准属性,用于所有支持转换的浏览器。注意,如果您要同时使用 Webkit 和标准语法,必须将 Webkit 语法放在标准语法之前。 ### 回答2: -webkit-transform 是一个CSS样式属性,用于对元素进行2D或3D变换。它是为WebKit浏览器引擎设计的,例如Safari和Chrome等浏览器。 以下是一个使用 -webkit-transform 属性的示例: 假设有一个带有 class 为 box 的元素: ```html <div class="box"></div> ``` 为这个元素添加CSS样式,使其在点击时进行旋转变换: ```css .box { width: 100px; height: 100px; background-color: red; transition: -webkit-transform 1s; } .box:hover { -webkit-transform: rotate(45deg); } ``` 在上述示例中,我们在.box的样式中定义了一个过渡效果,即在1秒内改变 -webkit-transform 属性的值。在.box:hover中,我们将 -webkit-transform 属性的值设置为 rotate(45deg),表示当鼠标悬停在元素上时,元素将以45度的角度旋转。 通过将 -webkit-transform 属性和过渡效果一同使用,我们可以实现动画效果,使元素在某个事件触发时进行平滑的变换。 需要注意的是,-webkit-transform 属性还可以用于更复杂的变换,如平移、缩放、扭曲等操作。同时,除了 -webkit-transform,还有其他前缀类似于 -moz-transform 和 -ms-transform,用于不同浏览器引擎的支持。 总之,-webkit-transform 是用于WebKit浏览器引擎的一个CSS样式属性,用于对元素进行2D或3D变换,可以通过改变属性值实现各种效果,提供了强大的设计和动画功能。 ### 回答3: -webkit-transform 是一个 CSS3 的样式属性,用于对元素进行旋转、缩放、移动和倾斜的变换。它是针对 WebKit 内核浏览器的私有前缀,包括谷歌浏览器(Chrome)、苹果浏览器(Safari)等。 下面是几个 -webkit-transform 的示例: 1. 旋转: 可以通过 -webkit-transform 属性来对元素进行旋转。例如,transform: rotate(45deg); 可以将元素顺时针旋转 45 度。 2. 缩放: -webkit-transform 也可以用来对元素进行缩放。例如,transform: scale(1.5); 可以将元素放大到原来大小的1.5倍。 3. 移动: 通过 -webkit-transform 属性,可以实现元素的平移。例如,transform: translate(50px, 100px); 可以将元素在水平方向上移动 50 像素,在垂直方向上移动 100 像素。 4. 倾斜: -webkit-transform 还可以对元素进行倾斜。例如,transform: skewX(45deg); 可以将元素在水平方向上倾斜 45 度。 需要注意的是,-webkit-transform 仅适用于 WebKit 内核浏览器,其他浏览器需要使用其他的私有前缀或者标准的 transform 属性来实现相同的效果。在使用 -webkit-transform 时,需要同时考虑浏览器的兼容性,尽量使用标准的 transform 属性来实现相同的效果。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值