I am making a form and input where, when I click on the input the border of the form changes it’s color and what I want to happen is that when I click anywhere else it goes back to it’s original color.
-HTML
<form action=""> <input onclick="onClick()" type="email" placeholder="Your E-mail Address"> <button>Get Started</button> </form>
-CSS
form { display: flex; flex-direction: row; border: 2px solid rgb(226, 226, 226); border-radius: 30px; padding: 8px 8px; width: 78%; transition: all 300ms ease; } .on-click form { border: 2px solid #6415ff; }
-JS
function onClick() { document.body.classList += " on-click" }
I tried making this one but I can’t put it on the whole document
function offClick() { document.body.classList.remove('on-click') }
When I click on the input the form changes it’s color but I can’t wrap my head on how to get it off. Any advice or solutions please
Advertisement
Answer
You actually don’t need JavaScript to solve this at all, you could use :focus-within
pseudo-class, like this:
form { display: flex; flex-direction: row; border: 2px solid rgb(226, 226, 226); border-radius: 30px; padding: 8px 8px; width: 78%; transition: all 300ms ease; } form:focus-within { border: 2px solid #6415ff; }
More about :focus-within
here.