Hướng dẫn tạo Toggle Switch với CSS
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:
<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.
Bài viết này được đăng tại [free tuts .net]
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é:
.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ã:
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