What Is a CSS Selector?

CSS stylesheet on a computer screen

 Degui Adil/Getty Images

CSS relies on pattern matching rules to determine which style applies to which element in the document. These patterns are called selectors and they range from tag names (for example,

to match paragraph tags) to very complicated patterns that match very specific parts of a document (for example,
p#myid > b.highlight
would match any
tag with a class of
that is a child of the paragraph with the id
A CSS selector is the part of a CSS style call that identifies what part of the web page should be styled. The selector contains one or more properties that define how the selected HTML will be styled.

The CSS Selectors

There are several different types of selectors:

  • type selectors – matching a specific element
  • class selectors – matching elements with a specific class
  • ID selectors – matching the element with a specific ID
  • descendant selectors – matching elements that are descendants of a specific element
  • child selectors – matching elements that are a child of the specific element
  • universal selectors – matching any element
  • adjacent sibling selectors – matching elements immediately preceded by a specific element
  • attribute selectors – matching elements with a specific attribute or attribute value
  • pseudo-class selectors – matching elements with a specific pseudo-class
  • pseudo-element selectors – matching elements with specific pseudo-element properties

Format CSS Styles and CSS Selectors

The format of a CSS style looks like this:

selector { style property : style ; } 

Separate multiple selectors that have the same style with commas. This is called selector grouping. For example:

selector1, selector2 { style property : style ; } 

Grouping selectors is a shorthand mechanism to keep your CSS styles compact. The above grouping would have the same effect as:

selector1 { style property : style ; }
selector2 { style property : style ; }

Always Test Your CSS Selectors

Not all browsers support all the CSS selectors. So be sure to test your selectors in as many browsers on as many operating systems as you can. But if you are using CSS1 or CSS2 selectors you should be fine.