rotate

Baseline Widely available

This feature is well established and works across many devices and browser versions. It’s been available across browsers since August 2022.

Thuộc tính rotate của CSS cho phép bạn chỉ định các phép biến đổi xoay một cách riêng lẻ và độc lập với thuộc tính transform. Cách này phù hợp hơn với các trường hợp sử dụng giao diện người dùng thông thường, và giúp bạn không cần phải nhớ thứ tự chính xác của các hàm transform khi chỉ định trong thuộc tính transform.

Try it

rotate: none;
rotate: -45deg;
rotate: z 45deg;
rotate: x 45deg;
rotate: y 45deg;
rotate: 3 0.5 2 45deg;
<section class="default-example" id="default-example">
  <div class="transition-all" id="example-element">
    <div class="face front">1</div>
    <div class="face back">2</div>
    <div class="face right">3</div>
    <div class="face left">4</div>
    <div class="face top">5</div>
    <div class="face bottom">6</div>
  </div>
</section>
#default-example {
  background: linear-gradient(skyblue, khaki);
  perspective: 550px;
}

#example-element {
  width: 100px;
  height: 100px;
  transform-style: preserve-3d;
}

.face {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 100%;
  height: 100%;
  position: absolute;
  backface-visibility: inherit;
  font-size: 60px;
  color: white;
}

.front {
  background: rgb(90 90 90 / 0.7);
  transform: translateZ(50px);
}

.back {
  background: rgb(0 210 0 / 0.7);
  transform: rotateY(180deg) translateZ(50px);
}

.right {
  background: rgb(210 0 0 / 0.7);
  transform: rotateY(90deg) translateZ(50px);
}

.left {
  background: rgb(0 0 210 / 0.7);
  transform: rotateY(-90deg) translateZ(50px);
}

.top {
  background: rgb(210 210 0 / 0.7);
  transform: rotateX(90deg) translateZ(50px);
}

.bottom {
  background: rgb(210 0 210 / 0.7);
  transform: rotateX(-90deg) translateZ(50px);
}

Cú pháp

css
/* Giá trị từ khóa */
rotate: none;

/* Giá trị góc */
rotate: 90deg;
rotate: 0.25turn;
rotate: 1.57rad;

/* Tên trục x, y, hoặc z cộng với góc */
rotate: x 90deg;
rotate: y 0.25turn;
rotate: z 1.57rad;

/* Vector cộng với giá trị góc */
rotate: 1 1 1 90deg;

/* Giá trị toàn cục */
rotate: inherit;
rotate: initial;
rotate: revert;
rotate: revert-layer;
rotate: unset;

Giá trị

giá trị góc

Một <angle> chỉ định góc xoay phần tử bị ảnh hưởng quanh trục Z. Tương đương với hàm rotate() (xoay 2D).

tên trục x, y, hoặc z cộng với giá trị góc

Tên của trục bạn muốn xoay phần tử bị ảnh hưởng quanh đó (x, y, hoặc z), cộng với một <angle> chỉ định góc xoay phần tử. Tương đương với hàm rotateX()/rotateY()/rotateZ() (xoay 3D).

vector cộng với giá trị góc

Ba số <number> đại diện cho một vector có gốc tại origin xác định đường thẳng mà bạn muốn xoay phần tử quanh đó, cộng với một <angle> chỉ định góc xoay phần tử. Tương đương với hàm rotate3d() (xoay 3D).

none

Chỉ định rằng không áp dụng phép xoay nào.

Định nghĩa hình thức

Initial valuenone
Applies totransformable elements
Inheritedno
Computed valueas specified
Animation typea transform
Creates stacking contextyes

Cú pháp hình thức

rotate = 
none |
<angle> |
[ x | y | z | <number>{3} ] && <angle>

Ví dụ

Xoay phần tử khi hover

Ví dụ sau đây cho thấy cách dùng thuộc tính rotate để xoay phần tử quanh các trục khác nhau khi hover. Hộp đầu tiên xoay 90 độ quanh trục Z khi hover, hộp thứ hai xoay 180 độ quanh trục Y khi hover, và hộp thứ ba xoay 360 độ khi hover quanh một vector được xác định bởi các tọa độ.

HTML

html
<div class="box" id="box1">rotate Z</div>
<div class="box" id="box2">rotate Y</div>
<div class="box" id="box3">vector & angle</div>

CSS

css
.box {
  display: inline-block;
  margin: 1em;
  min-width: 6.5em;
  line-height: 6.5em;
  text-align: center;
  transition: 1s ease-in-out;
  border: 0.25em dotted;
}

#box1:hover {
  rotate: 90deg;
}

#box2:hover {
  rotate: y 180deg;
}

#box3:hover {
  rotate: 1 2 1 360deg;
}

Kết quả

Đặc tả kỹ thuật

Specification
CSS Transforms Module Level 2
# individual-transforms

Tương thích trình duyệt

Xem thêm

Lưu ý: skew không phải là giá trị transform độc lập