Frontend mentor FAQ accordion challenge using basic js css and html.
Design comparison
Solution retrospective
I am proud of my first working javascript code, since I only started learning it 1 month ago, being able to write this amount (although quite redundant and easy) without too much trouble felt nice!
What challenges did you encounter, and how did you overcome them?I forgot how to target a specific css attribute (in this case visibility and display) in js and had to look it up on google.
What specific areas of your project would you like help with?I would like to know of a way to make my Javascript less redundant and more maintainable, but I am just a beginner so a beginner friendly advice would be best.
I also cannot resize the star image next to the FAQ heading below 40px in
@media (max-width: 400px);
so I kept it at 40px. no matter how hard I tried. Is there a specific reason why? Any insight would be much appreciated. Thank you!
Community feedback
- @jakegodsallPosted 8 months ago
Hi 👋
After taking a quick look at your code, it seems that the reason you can't resize the star image is because there are still
max-height
properties being applied to the image from the larger viewport media queries. This property is being overwritten with each media query decreasing in width, but in the@media (max-width: 400px)
media query, you want to ignore this. A way to do this would be to set:@media (max-width: 400px) { .star_image { max-height: none; /* add width and height here */ } }
The sizing should work then.
Taking a look at the JavaScript, there's a couple of things I would mention to reduce redundancy.
The first thing would be to use classes that can be added and removed from the elements. For example:
.hidden { visibility: hidden; }
Then, you can use JavaScript to add or remove the class when the element is clicked:
myElement.addEventListener("onclick", function(event) { event.target.classList.toggle("hidden"); });
This will apply the CSS
visibility: hidden
property when clicked, and then remove it again when clicked again.Using this approach you don't need to have separate logic for applying styles and then removing them again.
Hope this helps 😁
Marked as helpful1@PoumdgPosted 8 months agoHello @jakegodsall, Thank you for your help! I am going to try those right away.
0
Please log in to post a comment
Log in with GitHubJoin our Discord community
Join thousands of Frontend Mentor community members taking the challenges, sharing resources, helping each other, and chatting about all things front-end!
Join our Discord