New Feature: Playlist Center! Pick a topic and let our playlists guide the way.

Easy-to-follow video tutorials help you learn software, creative, and business skills.Become a member

Basic selector types

From: CSS Fundamentals

Video: Basic selector types

Now that we know a little bit more about CSS syntax, I want to take a moment to focus on selectors in a bit more detail. Remember, selectors allow us to tell the browser which elements on the page we want to style. In some cases, you are going to want to apply styles broadly to a number of elements all across your site. In other situations, you are going to want to target a smaller number of elements, or even a single element. Understanding how selectors work will allow you to do just that. The first selector I want to start with is the most basic, the element selector.

Basic selector types

Now that we know a little bit more about CSS syntax, I want to take a moment to focus on selectors in a bit more detail. Remember, selectors allow us to tell the browser which elements on the page we want to style. In some cases, you are going to want to apply styles broadly to a number of elements all across your site. In other situations, you are going to want to target a smaller number of elements, or even a single element. Understanding how selectors work will allow you to do just that. The first selector I want to start with is the most basic, the element selector.

Element selectors are global in nature, meaning they are going to affect every element of that type in a style document. You simply need to know what the tag is for a given element in order to style it. Now unlike HTML, we don't need the angle brackets around the tag name, just the tag itself. For example, to style paragraphs, you'd use the p; for heading 1s, you'd use an h1; for unordered lists you'd use an ul, and so on. While these selectors are very efficient, they're also very broad, which is why they are most often used to set global site-wide styles.

Another basic selector type is the class selector. Classes are HTML attributes that can be set on any HTML element. You can name a class anything you want, and you can use it on as many elements, and as many times on the page as you need. As you can imagine, that makes classes pretty popular when it comes to writing CSS. Now here, for example, the browser would look through all the elements on the page and apply styling to any elements with a class attribute of subheading.

Note that classes are identified in CSS by the period in front of their name. Now ID selectors are similar to class selectors in that they represent an HTML attribute. They differ from classes in one very important aspect. IDs must be unique to the page, meaning that if you assign an ID to a page element, no other element on that page may have that specific ID. In this example, the browser would find the element on the page that has the ID attribute of sidebar and then apply the styling.

Now, IDs identified by the octothorpe, or as it is more commonly known, the pound symbol, in front of the ID name. You can also make class and ID selectors element-specific by adding an element to the front of the selector. This limits the styling to only elements with the specific class or specific ID applied to it. For example, here styling would only be applied to heading 2s with a class of subheading, or divs with an ID of sidebar.

This allows you to write a single general class, or ID style, and then follow that with a more focused element-specific style if necessary. Classes and IDs can be anything you want them to be, but you do need a follow some naming conventions. First, don't use any spaces or special characters. Also, remember that they are case sensitive. If you use uppercase letters, you are going to need to remember that when writing the styles for them. Honestly, it doesn't really matter what you practice, as long as you're consistent.

Another type of selector I want to discuss is the descendent selector. Descendent selectors allow you to target an element based on where it's found within another element. You simply string the selectors together, separating them with whitespace. The parent selectors are added first, followed by each successive nested selector. For example, in this example the browser would find any span elements inside of paragraph elements which were also inside of div elements.

Now there isn't any limit as to how many of those that you can string together, but more than three starts to become extremely inefficient. Let's take a look at a couple of examples. Now in this first example, the browser would locate any paragraph found within a div tag and then apply the styling. In the second one, it would find any span element inside of a paragraph which is also inside of a div, and then apply the styling. As you can see, descendent selectors allow you to be extremely specific.

Another thing I want to point out here is that the descendent selectors apply to any nested element, no matter how deep it's found within the page structure. Going back to that first example, it's going to apply to paragraphs inside the div, not just ones that are immediately inside the div. You can also group selectors together by using commas between the selectors themselves. Now this can make writing styles more efficient by grouping selectors together that need the same styling. Instead of writing three separate selectors like this, for example, you can simply write one group selector, and that's a lot more efficient.

Although there are certainly more selector types available than the ones that I've shown here, the overwhelming bulk of your styles will probably be written through the basic selector types that we've covered. Learning how to write efficient selectors based on your document structure is among the most important CSS skills that you can cultivate. By mastering the different types of selectors available, you'll find that you have a much broader set of options for writing effective styles.

Show transcript

This video is part of

Image for CSS Fundamentals
CSS Fundamentals

36 video lessons · 67018 viewers

James Williamson
Author

 

Start learning today

Get unlimited access to all courses for just $25/month.

Become a member
Sometimes @lynda teaches me how to use a program and sometimes Lynda.com changes my life forever. @JosefShutter
@lynda lynda.com is an absolute life saver when it comes to learning todays software. Definitely recommend it! #higherlearning @Michael_Caraway
@lynda The best thing online! Your database of courses is great! To the mark and very helpful. Thanks! @ru22more
Got to create something yesterday I never thought I could do. #thanks @lynda @Ngventurella
I really do love @lynda as a learning platform. Never stop learning and developing, it’s probably our greatest gift as a species! @soundslikedavid
@lynda just subscribed to lynda.com all I can say its brilliant join now trust me @ButchSamurai
@lynda is an awesome resource. The membership is priceless if you take advantage of it. @diabetic_techie
One of the best decision I made this year. Buy a 1yr subscription to @lynda @cybercaptive
guys lynda.com (@lynda) is the best. So far I’ve learned Java, principles of OO programming, and now learning about MS project @lucasmitchell
Signed back up to @lynda dot com. I’ve missed it!! Proper geeking out right now! #timetolearn #geek @JayGodbold

Are you sure you want to delete this note?

No

Thanks for signing up.

We’ll send you a confirmation email shortly.


Sign up and receive emails about lynda.com and our online training library:

Here’s our privacy policy with more details about how we handle your information.

Keep up with news, tips, and latest courses with emails from lynda.com.

Sign up and receive emails about lynda.com and our online training library:

Here’s our privacy policy with more details about how we handle your information.

   
submit Lightbox submit clicked
Terms and conditions of use

We've updated our terms and conditions (now called terms of service).Go
Review and accept our updated terms of service.