Trình tạo checkbox CSS

Kết quả

Checkbox mặc định trông khác nhau trên từng hệ điều hành và rất khó đổi kiểu. Trình tạo này tạo CSS thuần để checkbox gốc có giao diện bạn muốn: chọn màu trạng thái được chọn, màu viền, kích thước và độ bo góc. Vì kiểu được áp cho một input thật nên thao tác bàn phím, trình đọc màn hình và gửi biểu mẫu vẫn hoạt động bình thường. Sao chép CSS đã tạo và thêm vào bảng định kiểu của bạn.

Cách tạo kiểu checkbox

  1. 1

    Chọn màu

    Chọn màu nền cho trạng thái được chọn và màu viền của ô.

  2. 2

    Đặt kích thước

    Chọn kích thước từ 12 đến 48 px.

  3. 3

    Đặt hình dạng

    Chọn độ bo góc của ô, tối đa 20 px.

  4. 4

    Sao chép CSS

    Xem trước dấu chọn rồi sao chép quy tắc đã tạo vào bảng định kiểu.

CSS được tạo có tác dụng gì

Quy tắc được áp trực tiếp lên input bằng appearance: none, loại bỏ giao diện mặc định để có thể tạo kiểu cho ô:

.checkbox {
  appearance: none;
  width: 20px;
  height: 20px;
  border: 2px solid #d1d5db;
  border-radius: 4px;
  cursor: pointer;
  position: relative;
  transition: all 0.15s ease;
}

Khi checkbox được chọn, ô sẽ tô màu đã chọn và xuất hiện dấu chọn trắng được vẽ bằng CSS:

.checkbox:checked {
  background: #10b981;
  border-color: #10b981;
}
.checkbox:checked::after {
  content: "";
  position: absolute;
  left: 5px;
  top: 2px;
  width: 6px;
  height: 10px;
  border: solid white;
  border-width: 0 2px 2px 0;
  transform: rotate(45deg);
}

Vì sao dùng input gốc

Kiểu này không bao giờ thay thế phần tử bằng div: <input type="checkbox"> thật vẫn giữ thao tác bàn phím, hỗ trợ trình đọc màn hình và gửi biểu mẫu. appearance: none chỉ thay đổi giao diện. Nếu cần hỗ trợ Safari phiên bản cũ, hãy thêm -webkit-appearance: none vào quy tắc.

Lấy nét và rê chuột

Quy tắc được tạo gồm hiệu ứng chuyển màu mượt nhưng không có kiểu rê chuột hay lấy nét. Hãy thêm quy tắc của riêng bạn cho :hover:focus-visible để người dùng bàn phím luôn thấy vị trí lấy nét, ví dụ một đường viền màu quanh ô.

Dấu chọn

Dấu chọn là một đường trắng nhỏ xoay 45 độ. Nếu cần màu khác hoặc nét mảnh hơn, dày hơn, hãy sửa giá trị borderborder-width trong quy tắc ::after.

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

Không. Nó chỉ xuất CSS. Hãy áp lớp cho một input thật trong biểu mẫu của bạn, có hoặc không có nhãn hiển thị.

Có. Quy tắc dùng appearance: none trên input gốc nên giá trị vẫn được gửi bình thường và hỗ trợ bàn phím cùng trình đọc màn hình được giữ nguyên.

Kích thước được đặt trong trình tạo, từ 12 đến 48 px. Màu và độ dày của dấu chọn được sửa trong quy tắc ::after của CSS đã tạo.

Với vùng chạm, hãy hướng tới ít nhất 24 px, lý tưởng là 44 px như các điều khiển khác. Giữ ô thẳng hàng với dòng chữ nhãn trong thiết kế 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