Trình tạo spinner cho nút bằng CSS

Tiếp theo

Spinner bên trong nút bấm cho khách truy cập biết cú nhấp của họ đã có tác dụng và họ không nên nhấn lại. Hãy tạo một vòng nhỏ, mảnh tại đây, rồi sao chép CSS và đặt nó bên cạnh nhãn của nút.

Cách tạo spinner cho nút bấm

  1. 1

    Dùng kích thước nhỏ

    Nhập 16 hoặc 18 vào ô Kích thước (px) để vòng quay vừa với chiều cao chữ trên nút.

  2. 2

    Làm vòng mảnh

    Đặt Độ dày là 2 để cung vẫn sắc nét ở kích thước này.

  3. 3

    Chọn màu phù hợp

    Chọn Màu cho cung đang chuyển động, ví dụ màu trắng trên nút tối.

  4. 4

    Tăng tốc một chút rồi sao chép

    Thử 0,8 giây mỗi vòng, rồi sao chép CSS.

Một ví dụ thực hành

Giả sử bạn có một nút “Lưu” màu xanh đậm với chữ trắng. Trong trình tạo, nhập kích thước 16, độ dày 2, màu #ffffff và tốc độ 0,8. Công cụ sẽ tạo ra:

.loader {
  width: 16px;
  height: 16px;
  border: 2px solid #eee;
  border-top-color: #ffffff;
  border-radius: 50%;
  animation: spin 0.8s linear infinite;
}
@keyframes spin {
  to { transform: rotate(360deg); }
}

Track của vòng có màu xám nhạt cố định, nhìn rõ trên nút tối. Nếu bạn muốn track dịu hơn, hãy đổi #eee thành một giá trị bán trong suốt như rgba(255, 255, 255, 0.3) trong CSS đã dán. Màu cung vẫn là màu bạn đã chọn.

Đặt spinner bên trong nút

Đặt phần tử spinner trước nhãn và biến nút thành một hàng flex để chúng nằm trên cùng một dòng với khoảng cách:

<button class="save" type="submit" disabled>
  <span class="loader" role="status" aria-label="Đang lưu"></span>
  Đang lưu
</button>
.save {
  display: inline-flex;
  align-items: center;
  gap: 8px;
}

Chỉ thêm spinner và trạng thái disabled khi yêu cầu đang chạy. Xóa cả hai khi yêu cầu hoàn tất. Việc vô hiệu hóa nút ngăn gửi trùng lặp; spinner là tín hiệu giải thích lý do.

Kích thước và độ dày cho nút

Kích thước chữ trên nút Kích thước spinner Độ dày
14 px 14 px 2 px
16 px 16 đến 18 px 2 px
18 đến 20 px 20 đến 24 px 3 px

Ghi chú

  • Trình tạo chỉ tạo một vòng tròn. Nó không tạo nút bấm, vì vậy kiểu dáng nút vẫn do bạn quyết định.
  • Vòng dày hơn một phần tư đường kính sẽ bị lấp đầy và trông như một đĩa, vì vậy hãy dùng giá trị mỏng cho kích thước nhỏ.
  • Giữ nhãn bên cạnh spinner. Một spinner không có chữ có thể khó hiểu với một số người dùng.

Tránh làm nhảy bố cục

Nếu spinner xuất hiện và nút đột ngột rộng ra, bố cục sẽ bị xô lệch và vùng nhấp chuột sẽ dịch chuyển. Có hai cách đơn giản để khắc phục. Đặt cho nút một chiều rộng tối thiểu đủ chứa spinner và nhãn dài hơn. Hoặc dành sẵn chỗ cho spinner ngay từ đầu bằng cách hiển thị một ô giữ chỗ trống 16 px trước nhãn. Vì vòng được tạo có chiều rộng và chiều cao cố định theo pixel, nên rất dễ dành đúng khoảng không gian nó cần.

Câu hỏi thường gặp

Khoảng bằng chiều cao chữ trên nút, thường từ 14 đến 20 pixel. Như vậy nút sẽ không bị phình to khi spinner xuất hiện.

Trong hầu hết biểu mẫu thì có. Vô hiệu hóa giúp tránh gửi trùng lặp, và spinner giải thích cho khách truy cập vì sao không có gì khác có thể nhấp được.

Track có màu xám nhạt còn cung là màu bạn chọn. Trên nút sáng, hãy chọn màu cung đậm hơn và đổi màu track trong CSS đã dán.

Không. Trình tạo chỉ xuất CSS của vòng quay. Việc giữ, thay đổi hay ẩn nhãn tùy thuộc vào markup của bạn.

Công cụ liên quan

Công cụ này có phiên bản bằng các ngôn ngữ khác

Hướng dẫn và trường hợp sử dụng