Đăng nhập

Bài 20: Transition – hiệu ứng mượt mà trong CSS

Khi một thuộc tính CSS thay đổi (ví dụ: màu nền, kích thước, độ mờ…), trình duyệt thường thay đổi ngay lập tức. Điều đó khiến giao diện trông “thô” và thiếu cảm giác mượt mà.

CSS transition giúp bạn tạo hiệu ứng chuyển đổi nhẹ nhàng giữa các trạng thái – làm cho trải nghiệm người dùng trở nên hiện đại và tinh tế hơn.


1. Cách sử dụng transition

Cú pháp cơ bản:

transition: [thuộc-tính] [thời-gian] [hiệu-ứng] [độ-trễ];

Ví dụ:

button {
  background-color: #3498db;
  color: white;
  transition: background-color 0.3s ease;
}

button:hover {
  background-color: #2ecc71;
}

Khi rê chuột vào, màu nền chuyển từ xanh dương → xanh lá một cách mượt mà trong 0.3 giây.


2. Các thành phần của transition

Thành phầnÝ nghĩa
thuộc-tínhTên thuộc tính cần hiệu ứng (ví dụ: background-color)
thời-gianThời gian chuyển (ví dụ: 0.5s, 300ms)
hiệu-ứngKiểu chuyển động (ease, linear, ease-in, v.v.)
độ-trễ (tùy chọn)Chờ bao lâu mới bắt đầu chuyển động

3. Các giá trị easing phổ biến

Tên easingHiệu ứng
ease (mặc định)Chuyển động mượt, chậm lại ở cuối
linearTốc độ đều nhau từ đầu đến cuối
ease-inBắt đầu chậm, tăng tốc về sau
ease-outBắt đầu nhanh, chậm dần ở cuối
ease-in-outChậm ở cả đầu và cuối

4. Dùng transition cho nhiều thuộc tính

Bạn có thể liệt kê:

transition: background-color 0.3s, transform 0.4s ease-in;

Hoặc dùng tất cả:

transition: all 0.3s ease;

Lưu ý: dùng all sẽ ảnh hưởng đến mọi thuộc tính, nên chỉ nên dùng khi cần.


5. Thực hành: làm nút mượt mà khi hover

style.css

button {
  padding: 12px 24px;
  font-size: 16px;
  color: white;
  background-color: #e74c3c;
  border: none;
  border-radius: 6px;
  transition: background-color 0.3s ease, transform 0.2s ease;
}

button:hover {
  background-color: #c0392b;
  transform: scale(1.05);
}

index.html

<!DOCTYPE html>
<html>
<head>
  <meta charset="UTF-8">
  <title>Bài 20 – Transition</title>
  <link rel="stylesheet" href="style.css">
</head>
<body>

  <button>Bấm tôi đi</button>

</body>
</html>

6. Một số ví dụ khác

a. Hiệu ứng opacity

.card {
  opacity: 0.7;
  transition: opacity 0.4s ease;
}

.card:hover {
  opacity: 1;
}

b. Đổi màu chữ khi hover

a {
  color: #333;
  transition: color 0.3s;
}

a:hover {
  color: #e67e22;
}

7. Ghi nhớ

Thành phầnVí dụ
transition-propertybackground-color, opacity, transform
transition-duration0.3s, 500ms
transition-timing-functionease, linear, ease-in-out
transition-delay0s, 0.2s

Thảo luận

Email của bạn sẽ không được hiển thị công khai. Các trường bắt buộc được đánh dấu *

Đăng ký nhận tin mới

Nhận bài học, tài nguyên và cơ hội việc làm qua email hàng tuần.

Chúng tôi cam kết không spam. Bạn có thể hủy bất cứ lúc nào.