1. Transition
Ý nghĩa: Tạo hiệu ứng chuyển đổi mượt mà khi giá trị thuộc tính CSS thay đổi (ví dụ: màu sắc, kích thước).
Cú pháp:
selector { transition: property duration timing-function delay; }property: thuộc tính cần hiệu ứng (ví dụ:
color,width).duration: thời gian chuyển đổi (ví dụ:
0.5s).timing-function: tốc độ chuyển đổi (
ease,linear,ease-in,ease-out).delay: độ trễ trước khi bắt đầu.
Ví dụ: Nút đổi màu khi rê chuột
<style> button { background-color: blue; color: white; transition: background-color 0.5s ease; } button:hover { background-color: red; } </style> <button>Di chuột vào tôi</button>👉 Khi rê chuột, màu nền chuyển từ xanh sang đỏ mượt mà.
2. Animation
Ý nghĩa: Tạo hiệu ứng động phức tạp bằng cách định nghĩa nhiều trạng thái với @keyframes.
Cú pháp:
@keyframes animationName { from { property: value; } to { property: value; } } selector { animation: animationName duration timing-function delay iteration-count direction; }iteration-count: số lần lặp (
infiniteđể lặp vô hạn).direction: hướng chạy (
normal,reverse,alternate).
Ví dụ: Hộp nhảy lên xuống
<style> @keyframes bounce { 0% { transform: translateY(0); } 50% { transform: translateY(-50px); } 100% { transform: translateY(0); } } div { width: 100px; height: 100px; background: orange; animation: bounce 1s infinite; } </style> <div></div>👉 Hộp màu cam sẽ nhảy lên xuống liên tục.
3. Transform
Ý nghĩa: Thay đổi hình dạng, vị trí, kích thước phần tử mà không ảnh hưởng đến bố cục xung quanh.
Các giá trị phổ biến:
translate(x,y): di chuyển.rotate(deg): xoay.scale(x,y): phóng to/thu nhỏ.skew(x,y): nghiêng.
Ví dụ: Xoay hình vuông khi rê chuột
<style> div { width: 100px; height: 100px; background: green; transition: transform 0.5s; } div:hover { transform: rotate(45deg) scale(1.2); } </style> <div></div>👉 Khi rê chuột, hình vuông xoay 45° và phóng to 20%.