transform là gì?

transform là thuộc tính cho phép dịch chuyển, thay đổi vị trí, hướng, chiều hoặc xoay thành phần, là một trong những thuộc tính đột phá trong CSS3.

Ứng dụng của transform rất lớn, tạo nên một bước ngoặc trong điều khiển giao diện, trước đây bạn chỉ có thể dùng hình ảnh cho những giao diện xoay trục, 3D hay thậm trí là dịch chuyển, hoặc đơn giản là ứng dụng trong hover thay đổi hình dạng của thành phần,... tất sẽ cả đơn giản hơn khi bạn biết

transform.

Cấu trúc

tag {
    transform: giá trị;
}

Giá trị của transform rất nhiều, bài học này chủ yểu cho bạn biết cách sử dụng nên sẽ giới thiệu vài giá trị thường dùng, những giá trị khác bạn có thể tìm hiểu ở phần tham khảo thuộc tính transform.

Giá trị Đơn vị VD Mô tả
rotate(angle) Độ rotate(45deg) Định nghĩa một phép quay 2D với góc được xác định bởi tham số angle.
rotateX(angle) Độ rotateX(45deg) Định nghĩa một phép quay 3D dọc theo trục X, cần dùng kết hợp với giá trị perspective.
rotateY(angle) Độ rotateY(45deg) Định nghĩa một phép quay 3D dọc theo trục Y, cần dùng kết hợp với giá trị perspective.
rotateZ(angle) Độ rotateZ(45deg) Định nghĩa một phép quay 3D dọc theo trục Z, cần dùng kết hợp với giá trị perspective.
scale(x,y) Số thập phân scale(1.5,2) Xác định một biến đổi tỷ lệ.
scaleX(x) Số thập phân scale(1.5) Xác định một biến đổi tỷ lệ theo trục X.
scaleY(y) Số thập phân scale(1.5) Xác định một biến đổi tỷ lệ theo trục Y.
skew(x-angle,y-angle) Độ skew(10deg,10deg); Xác định sự biến đổi nghiêng 2D dọc theo trục X và Y.
skewX(x-angle) Độ skewX(10deg); Xác định sự biến đổi nghiêng 2D dọc theo trục X.
skewY(y-angle) Độ skewY(10deg); Xác định sự biến đổi nghiêng 2D dọc theo trục Y.
translate(x,y) px, em, ... translate(10px,20px); Xác định một dịch chuyển 2D.
translateX(x) px, em, ... translateX(10px); Xác định một dịch chuyển 2D theo trục X.
translateY(y) px, em, ... translateY(10px); Xác định một dịch chuyển 2D theo trục Y.
perspective(px) px, em, ... perspective(10px); Giá trị cần cho biến đổi 3D.

Cách sử dụng

HTML viết:

<!DOCTYPE HTML>
<html>
<head></head>
<body>
<div>
<p>transform</p>
</div>
</body>
</html>

CSS viết - khi chưa sử dụng transform:

p {
    background: #7ACAFF;
    height: 100px;
    width: 100px;
}

Hiển thị trình duyệt:

transform

Ta sẽ xem xét vài giá trị của transform để hiểu hơn về thuộc tính này nhé:

CSS viết:

p {
    background: #7ACAFF;
    height: 50px;
    transform: rotate(45deg);
    width: 120px;
}

Hiển thị trình duyệt:

transform

Kết quả cho ta thấy, thành phần p hiện tại đã được xoay một góc 45 độ, các bạn xem thêm một vài ví dụ bên dưới nhe:

Ví dụ thêm - Một số transform thường dùng

Dịch chuyển dọc

p {
    background: #7ACAFF;
    height: 50px;
    transform: translateX(100px);
    width: 120px;
}

transform

Biến đổi nghiên theo trục X

p {
    background: #7ACAFF;
    height: 50px;
    transform: skewX(30deg);
    width: 120px;
}

transform

Các giá trị khác, bạn có thể xem thêm tại tham khảo transform hoặc sử dụng công cụ tạo transform để khám phá nhiều tính năng hơn.