Class Selector (CSS selector)

Share this article

Syntax

.className {
declaration block
}

Description

Selecting elements on the basis of their class names is a very common technique in CSS. The attribute selector syntax [class~="warning"] is rather awkward, but thankfully there’s a simpler and shorter form for it: the class selector. Here’s a simple example that selects all elements with a class attribute that contains the value “warning“:
.warning {
  ⋮ declarations
}
This example also illustrates the use of an implied universal selector—it’s equivalent to *.warning. Note that whitespace characters can’t appear after the period, or between an element type selector, or explicit universal selector, and the period. For example, the following selector will match all p elements with a class attribute that contains the value “warning
“:
p.warning {
  ⋮ declarations
}
A simple selector may contain more than one attribute selector and/or class selector; in such cases, the selector pattern matches elements whose attributes contain all the specified components. Here’s an example:
div.foo.bar {
  ⋮ declarations
}
div.foo.bar[title^="Help"] {
  ⋮ declarations
}
The first example selector above matches div elements whose class attribute value contains both the words "foo" and "bar". The second example selector matches div elements whose class attribute values contains both the words "foo"
and "bar", and whose title attribute values begin with the string "Help". To clarify further the html that would match the above CSS selectors could be as follows:
<div class="foo bar">Matches first example</div>
<div class="foo bar" title="Help">Matches second example</div>

Example

The following selector will match all p elements with a class attribute that contains the value "intro":

p.intro {
  ⋮ declarations
}

Frequently Asked Questions about CSS Class Selectors

What is the significance of a CSS class selector?

A CSS class selector is a name assigned to a specific style in a CSS file. It plays a crucial role in web development as it allows developers to apply the same style to multiple HTML elements. This not only ensures consistency in design but also saves time as developers don’t have to write the same code repeatedly. Class selectors are defined with a period followed by the class name. For example, .intro {color: blue;}. In this case, ‘intro’ is the class selector.

How do I use a CSS class selector in HTML?

To use a CSS class selector in HTML, you need to assign the class name to the HTML element using the ‘class’ attribute. For instance, if you have a class selector named ‘intro’ in your CSS file, you can apply it to a paragraph in HTML like this:

This is an introductory paragraph.

. The style defined in the ‘intro’ class will be applied to this paragraph.

Can I use multiple class selectors for a single HTML element?

Yes, you can use multiple class selectors for a single HTML element. You just need to separate each class name with a space within the ‘class’ attribute in HTML. For example,

This is a highlighted introductory paragraph.

. In this case, the styles defined in both the ‘intro’ and ‘highlight’ classes will be applied to the paragraph.

What is the difference between class selectors and id selectors in CSS?

The main difference between class selectors and id selectors in CSS lies in their usage. While a class selector can be used to style multiple HTML elements, an id selector is used to style a single unique element. Also, class selectors are defined with a period (.) before the class name, whereas id selectors are defined with a hash (#) before the id name.

Can I use CSS class selectors with other selectors?

Yes, CSS class selectors can be combined with other selectors to target specific elements. For instance, you can use a class selector with an element selector to style a specific type of element within a class. For example, p.intro {color: blue;} will apply the style only to paragraph elements within the ‘intro’ class.

What happens if I have conflicting styles in my CSS class selectors?

If there are conflicting styles in your CSS class selectors, the browser will follow the CSS specificity and inheritance rules to resolve the conflict. In general, the style defined later in the CSS file will override the earlier one. However, more specific selectors will have higher priority.

How can I override styles in CSS class selectors?

You can override styles in CSS class selectors by either defining a new style later in the CSS file or using more specific selectors. Another way is to use the ‘important’ rule. By adding ‘!important’ after a style, you can give it higher priority. However, use this rule sparingly as it can make your CSS hard to manage.

Can I use CSS class selectors in JavaScript?

Yes, you can use CSS class selectors in JavaScript to manipulate HTML elements. The ‘document.getElementsByClassName()’ method allows you to select elements with a specific class name. You can then change their styles, content, or attributes using various JavaScript methods.

Are there any naming conventions for CSS class selectors?

While CSS doesn’t enforce any strict naming conventions for class selectors, it’s a good practice to use descriptive and concise names. Also, class names are case-sensitive and should not start with a number. You can use hyphens (-) or underscores (_) to separate words in a class name.

Can I use CSS class selectors in responsive design?

Yes, CSS class selectors can be used in responsive design to apply different styles based on the screen size or device. By combining class selectors with media queries, you can create a responsive layout that adapts to different viewing environments.

Adam RobertsAdam Roberts
View Author

Adam is SitePoint's head of newsletters, who mainly writes Versioning, a daily newsletter covering everything new and interesting in the world of web development. He has a beard and will talk to you about beer and Star Wars, if you let him.

Share this article
Read Next
Get the freshest news and resources for developers, designers and digital creators in your inbox each week