Hướng dẫn tạo Toggle Switch với CSS

DEMO

Toggle Switch là một button có thể chuyển đổi giá trị giống như một công tắc, Chúng ta có thể sử dụng Toggle Switch trong các form để đại diện cho một nội dung nào đó gồm hai giá trị yes và no. Các bạn hãy xem hình ảnh dưới đây:

Trong bài này mình sẽ hướng dẫn các bạn tạo các Toggle Switch, Cùng tiến hành nhé!

1. Xây dựng giao diện

Bước đầu tiên là xây dựng phần giao diện, các bạn tạo file index.html và đặt đoạn mã HTML dưới đây vào trong thẻ body:

Code RUN
<div class="container">
  <h2>Freetuts.net hướng dẫn tạo Toggle Switch</h2>
  
  <label class="switch">
    <input type="checkbox">
    <span class="slider"></span>
  </label>

  <label class="switch">
    <input type="checkbox" checked>
    <span class="slider"></span>
  </label>
  <br><br>

  <label class="switch">
    <input type="checkbox">
    <span class="slider round"></span>
  </label>

  <label class="switch">
    <input type="checkbox" checked>
    <span class="slider round"></span>
  </label>
</div>

OK giờ chúng ta sẽ chuyển đến bước tiếp theo.

2. Thêm CSS để định dạng các thành phần

Trong bước này chúng ta sử dụng CSS để định dạng cho các thành phần dễ nhìn hơn, các bạn thêm đoạn mã CSS dưới đây vào bên trong thẻ style nhé:

Code RUN
.container {
  width: 500px;
  margin: auto;
  text-align: center;
}
.switch {
  position: relative;
  display: inline-block;
  width: 60px;
  height: 34px;
  margin: 20px;
}

.switch input {display:none;}

.slider {
  position: absolute;
  cursor: pointer;
  top: 0;
  left: 0;
  right: 0;
  bottom: 0;
  background-color: #ccc;
  -webkit-transition: .4s;
  transition: .4s;
}

.slider:before {
  position: absolute;
  content: "";
  height: 26px;
  width: 26px;
  left: 4px;
  bottom: 4px;
  background-color: white;
  -webkit-transition: .4s;
  transition: .4s;
}

input:checked + .slider {
  background-color: #2196F3;
}

input:focus + .slider {
  box-shadow: 0 0 1px #2196F3;
}

input:checked + .slider:before {
  -webkit-transform: translateX(26px);
  -ms-transform: translateX(26px);
  transform: translateX(26px);
}

/* Rounded sliders */
.slider.round {
  border-radius: 34px;
}

.slider.round:before {
  border-radius: 50%;
}

Thuật toán ở đây như sau:

  • Đầu tiên các bạn tạo các thành phần slider đại diện cho phần nền công tắc và slider:before đại diện cho phần nút gạt của công tắc.
  • Khi có một input được select, đổi màu nền của công tắc theo sau nó đồng thời chuyển vị trí nút gạt bằng đoạn mã:

Code
input:checked + .slider:before {
  -webkit-transform: translateX(26px);
  -ms-transform: translateX(26px);
  transform: translateX(26px);
}

Vậy là ta đã có một công tắc được bật. Giờ các bạn chạy thử file index.html để xem thành quả nhé!

3. Lời kết

Qua bài viết này, mình đã hướng dẫn các bạn tạo một Toggle Switch, hi vọng nó sẽ giúp các bạn có thêm sự lựa chọn khi xây dựng website. Nếu có bất cứ thắc mắc gì các bạn hãy để lại ở phần bình luận, hẹn gặp lại trong các bài viết tiếp theo trên freetuts.net

Tham khảo: w3schools.com

Nguồn: freetuts.net

KHÓA HỌC ĐANG GIẢM GIÁ

UNICA - Học jQuery từ cơ bản đến nâng cao

(Giảng viên: )

XEM
UNICA - Bootstrap CSS Framework - CSS & Component

(Giảng viên: )

XEM
UNICA - Học lập trình JAVASCRIPT

(Giảng viên: )

XEM
KYNA - Trang trí website bằng CSS

(Giảng viên: Phó Hải Đăng)

XEM
KYNA - Thiết kế website với HTML

(Giảng viên: Phó Hải Đăng)

XEM