HTML Academy
Checkboxes, step 2
Smooth transitions14/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
Radio buttons, step 1
  • Sign up
  • Log in

Loading…
Everything will be ready in few seconds

  • Theory
  • Theory
  • Comments

Checkboxes, step 3

And now for our final touch: we will smoothly rotate the pseudo-box in the selected state by 45 degrees. That way it will look like a “check.”

Add the following to the rule for the selected state:

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

We will add a rotation transform, and we will add the following properties to describe the smooth transform to the rule:

label::before { ... }

We need to do this in order for the rotation to occur smoothly in both directions (when selecting and unselecting).

Indeed, you can just as easily apply transitions to pseudo-elements as you can to normal elements.

Hereinafter, we will intensively use transforms. Therefore, you can repeat them in the “2D transforms” chapter.

Comments

  • index.html
  • style.css
HTML
<!DOCTYPE html> <html lang="en"> <head> <title>Checkboxes, step 3</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 are the correct values for the position property?</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">absolute</label> </div> <div> <input type="checkbox" id="answer2"> <label for="answer2">great</label> </div> <div> <input type="checkbox" id="answer3"> <label for="answer3">majestic</label> </div> </form> </section> </body> </html>
CSS
label { position: relative; cursor: pointer; } label::before { position: absolute; top: 0; left: -44px; z-index: 1; width: 16px; height: 16px; border: 2px solid #5a5a5a; content: ""; } input[type="checkbox"] { display: none; } input[type="checkbox"]:checked ~ label::before { width: 21px; height: 10px; border-color: #00bad2; border-top-style: none; border-right-style: none; }

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. Set a transform: rotate(-45deg) rotation for the selected state of the “pseudo-checkbox”.
    2. And then assign a smooth transition for both properties with a duration of 0.3s and the form ease-in-out for label::before.

    Toggle the checkboxes 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.