HTML Academy
Toggle switches, step 3
Smooth transitions21/29
Back to the list of tasks
  • 1. The transition-duration property
  • 2. Transition duration, step 2
  • 3. The transition-property: which properties can be changed smoothly?
  • 4. The transition-delay property
  • 5. The “form” of the transition, transition-timing-function
  • 6. transition-timing-function, step 2
  • 7. transition-timing-function, step 3
  • 8. transition-timing-function, step 4
  • 9. Paper buttons, step 1
  • 10. Paper buttons, step 2
  • 11. Paper buttons, step 3
  • 12. Checkboxes, step 1
  • 13. Checkboxes, step 2
  • 14. Checkboxes, step 3
  • 15. Radio buttons, step 1
  • 16. Radio buttons, step 2
  • 17. Radio buttons, step 3
  • 18. Toggle switches, step 1
  • 19. Toggle switches, step 2
  • 20. Toggle switches, step 3
  • 21. Toggle switches, step 4
  • 22. The transformer icon, step 1
  • 23. The transformer icon, step 2
  • 24. The transformer icon, step 3
  • 25. The transformer icon, step 4
  • 26. Text input field, step 1
  • 27. Text input field, step 2
  • 28. Text input field, step 3
  • 29. Text input field, step 4
The transformer icon, step 1
  • Sign up
  • Log in

Loading…
Everything will be ready in few seconds

  • Theory
  • Theory
  • Comments

Toggle switches, step 4

All that we have left to do is to teach the sliders, which we created using the label::after pseudo-element, to toggle back and forth.

In order to control the active state of the slider, we will use a CSS rule with this selector:

input[type="checkbox"]:checked ~ label::after { ... }

When it is active, we will move the slider using the translateX transform and also change its color.

The smooth transition properties, just like in the previous examples, will be added to the CSS rule for the initial state of the slider:

label::after { ... }

In this case, it will move smoothly in both directions.

Comments

  • index.html
  • style.css
HTML
<!DOCTYPE html> <html lang="en"> <head> <title>Toggle switches, step 4</title> <meta charset="utf-8"> <link rel="stylesheet" href="material.css"> <link rel="stylesheet" href="style.css"> </head> <body class="green-theme"> <section class="card"> <h1 class="question"><span>What tags have never been included as part of HTML?</span></h1> <form class="answers" action="https://echo.htmlacademy.ru/courses" method="post"> <button class="fab" type="submit">&#58882;</button> <div> <input type="checkbox" id="answer1"> <label for="answer1">nextid</label> </div> <div> <input type="checkbox" id="answer2"> <label for="answer2">bgsound</label> </div> <div> <input type="checkbox" id="answer3"> <label for="answer3">hole</label> </div> </form> </section> </body> </html>
CSS
label { position: relative; display: inline-block; max-width: 100px; word-wrap: break-word; cursor: pointer; } label::before, label::after { position: absolute; display: block; content: ""; } label::before { top: 7px; left: 108px; width: 32px; height: 1px; border-top: 1px solid #5a5a5a; } label::after { top: 0; left: 100px; width: 12px; height: 12px; border: solid 2px #5a5a5a; border-radius: 50%; background-color: #ffffff; } input[type="checkbox"] { display: none; } input[type="checkbox"]:checked ~ label::after { }

What didn’t you like in this task?

Thanks! We’ll fix everything at once!

The code has changed, click “Refresh” or turn autorun on.

You’ve gone to a different page

Click inside the mini-browser to shift the focus onto this window.

100%
Goalscompleted
0
    1. For the activate state of the slider, assign the translateX(32px) movement transform,
    2. and also set a background and border color of #0f9d58.
    3. And then in the label::after rule, assign a transition for all 200ms duration properties with an ease-in form.

    Click the toggle switches to test the result.

    1. Select the correct answer to the quiz question, and press the round button to check your answer.

    Cookies ∙ Privacy ∙ License Agreement ∙ About ∙ Contacts ∙ © HTML Academy OÜ, 2019−2025

    VISAMastercard

    Log in

    or

    Forgot your password?

    Sign up

    Sign up

    or
    Log in

    Restore access

    Have you forgotten your password or lost access to your profile? Enter your email connected to your profile and we will send you a link to restore access.

    Forgot to connect your email to the profile? Email us and we’ll help.