Welcome to the Treehouse Community
Want to collaborate on code errors? Have bugs you need feedback on? Looking for an extra set of eyes on your latest project? Get support with fellow developers, designers, and programmers of all backgrounds and skill levels here with the Treehouse Community! While you're at it, check out some resources Treehouse students have shared here.
Looking to learn something new?
Treehouse offers a seven day free trial for new students. Get access to thousands of hours of content and join thousands of Treehouse students and alumni in the community today.
Start your free trialPeter Feaver
5,829 PointsI still don't understand why we can't just use ids and classes? It seems to have the exact same effect...
In fact when I used the attribute selectors CSS it didn't have any effect and only had the intended effect after I used a class instead
3 Answers
Joel Bardsley
31,249 PointsThat's true Peter, but there may be times where the html markup is generated by a third-party plugin or CMS and you wouldn't be able to add your own IDs or classes. Knowing these selectors is useful for us to be able to apply styles to specific elements under those circumstances.
Kevin Korte
28,149 PointsWell, the lesson is called Selectors - Beyond the Basics, which is why they would have used attribute selectors instead here. You can us a class or id, but that would defeat the purpose of the course.
There are some situations in the wild you'll run into as a developer where an attribute selector makes sense. Usually not, but it's good to have such knowledge in your toolbox, when the situation arises.
Sometimes you may be working within an ecosystem where you can't change the html markup, or its incredibly difficult to, as so an attribute selector can be a great option. Other times it may be challenging, if not impossible to predict all the elements you want to target with a class, and again, the attribute selector can be a good option.
I know in the lessons it seem so easy to add a class, why can't we add a class. But for simplicity, the lessons have boiled away all of the other complexities that will exist when you're coding in the wild, thus the reason for attribute selectors.
And attribute selectors do work, they're just quite picky, so if didn't work for you before, the selector you were trying to use was incorrect and did not match the element you were intending to target.
Peter Feaver
5,829 PointsOkay, thanks. I was just unsure as to when and why I would not be able to use classes and ids as it seemed easier. This was really helpful, thanks!
Kevin Korte
28,149 PointsYou bet. There will be times you just can't (at least easily) change the html markup that you get to style, and so attribute selectors can play an important role.
Sergi Oca
7,981 PointsThank you for that insight, I believe it it should have been mentioned in the course even if it is a bit apparent that is for the course purposes, but yea when you are starting sometimes what is best practice or not can get a bit blurry.
yk7
Full Stack JavaScript Techdegree Student 22,891 PointsI just want to add that attribute selector of id has a degree of specificity lower than #id selector.
Peter Feaver
5,829 PointsPeter Feaver
5,829 PointsAh okay this makes a lot of sense. Thanks very much!