Home » CSS Selectors

CSS Selectors

CSS Selectors

Introduction

CSS selectors are patterns used to select and style HTML elements. They allow developers to target specific elements or groups of elements based on various criteria, such as element type, class, ID, attributes, and hierarchy within the document structure.

Categories of Selector

Selectors can be divided into different categories based on their specificity and how they target elements within the HTML document. Here are the main categories:

Simple Selector

Select elements based on name, id, and class.

Element Selector

Selects elements based on their tag name (e.g., p, div, h1). Example :-

<!DOCTYPE html>
<html>
<head>

<!-- Element Selector-->
<style>
div {
  text-align: center;
  color: blue;
}
</style>
</head>
<body>

<div>Welcome to Geekster</div>


</body>
</html>
CSS

Output :-

selectors-output.png

Universal Selector

Selects all elements on the page using the asterisk `*`.

<!DOCTYPE html>
<html>
<head>

<!-- Universal Selector-->
<style>

* {
  text-align: center;
  color: blue;
}
</style>
</head>
<body>

<h1>Hello world!</h1>

<p>Welcome to Geekster</p>


</body>
</html>
CSS

Output

universal-selector.png

CSS Id Selector

Selects a single element with a specific ID. The id of an element is unique within a page, so the id selector is used to select one unique element , To select an element with a specific id, write a hash (#) character, followed by the id of the element.

#my-id {
  text-align: center;
  color: red;
}
CSS
<!DOCTYPE html>
<html>
<head>
<style>
#my-id{
  text-align: center;
  color: red;
}
</style>
</head>
<body>

<p id="my-id">Welcome to Geekster</p>

</body>
</html>
CSS

Output

css-d-selector.png

CSS Class Selector

Selects elements with a specific class. To select elements with a specific class, write a period (.) character, followed by the class name.

.center {
  text-align: center;
  color: red;
}
CSS
<h1 class="center">Welcome to Geekster</h1>
CSS

Output

CSS-class-Selector.png
  • You can also specify that only specific HTML elements should be affected by a class.
<!DOCTYPE html>
<html>
<head>
<style>
p.center {
  text-align: center;
  color: red;
}
</style>
</head>
<body>

<h1 class="center">Hello World </h1>
<p class="center">Welcome to GeekSter</p> 

</body>
</html>
CSS

Output

specific-HTML-elements.png

CSS Grouping Selector

The grouping selector selects all the HTML elements with the same style definitions. Look at the following CSS code (the h1, h2, and p elements have the same style definitions):

h1 {
  text-align: center;
  color: red;
}

div {
  text-align: center;
  color: red;
}

p {
  text-align: center;
  color: red;
}
CSS

It will be better to group the selectors, to minimize the code. To group selectors, separate each selector with a comma.

h1, div, p {
  text-align: center;
  color: red;
}
CSS

Attribute Selector

  • Selecting Elements with a Specific Attribute:
/* Select all anchor elements with a "href" attribute */
a[href] {
    color: blue;
}
CSS
  • Selecting Elements with a Specific Attribute Value:
/* Select all input elements with a type attribute set to "checkbox" */
input[type="checkbox"] {
margin-right: 5px;
}
CSS
  • Selecting Elements with Attribute Values Containing a Specified Word:
/* Select all elements with a "class" attribute containing the word "active" */
[class~="active"] {
font-weight: bold;
}
CSS
  • Selecting Elements with Attribute Values Starting with a Specified Value:
/* Select all elements with a "href" attribute starting with "https://" */
[href^="https://"] {
color: green;
}
CSS

Pseudo-classes and Pseudo-elements

  • Pseudo-classes: Select elements based on their state or position in the document (e.g., :hover, :first-child, :nth-child()).
  • Pseudo-elements: Select and style a part of an element (e.g., ::before, ::after).

Combinator Selectors

  • Descendant Selector (Whitespace): Selects an element that is a descendant of another element.
  • Child Selector (>): Selects direct children of an element.
  • Adjacent Sibling Selector (+): Selects an element that is immediately preceded by a sibling element.
  • General Sibling Selector (~): Selects siblings of an element that share the same parent.

Logical Combinators

  • :is() or :matches() function: Allows grouping of multiple selectors.
  • :not() function: Selects elements that do not match a specified selector.

Conclusion

CSS selectors are a fundamental aspect of web development, allowing developers to apply styles to HTML elements with precision and flexibility. By mastering CSS selectors, developers can create visually appealing and well-structured web pages, enhancing the user experience and usability of their websites.

Understanding the different types of CSS selectors, their specificity, and how to effectively combine them is crucial for efficiently styling web pages. With a solid grasp of CSS selectors, developers can efficiently apply styles, manage styling complexities, and create responsive and accessible designs across various devices and screen sizes.

In conclusion, CSS selectors play a vital role in modern web development, empowering developers to control the presentation and layout of web content effectively. Continued learning and practice with CSS selectors will enable developers to create compelling and dynamic user interfaces, contributing to the overall success of their web projects.

Frequently Asked Questions

What are CSS selectors?

CSS selectors are patterns used to select and style elements in HTML documents. They allow developers to target specific elements or groups of elements based on various criteria such as tag names, classes, IDs, attributes, and more.

What are the different types of CSS selectors?

CSS selectors can be categorized into several types, including element selectors, class selectors, ID selectors, attribute selectors, pseudo-classes, pseudo-elements, and combinators. Each type serves a specific purpose and provides different ways to target elements for styling.

How do I combine multiple selectors in CSS?

Multiple selectors can be combined using commas to apply the same styles to multiple elements. Additionally, selectors can be combined using descendant selectors (whitespace), child selectors (>), adjacent sibling selectors (+), and general sibling selectors (~) to target specific elements or groups of elements.


What is the importance of specificity in CSS selectors?

Specificity determines which CSS rule takes precedence when multiple rules apply to the same element. It is essential to understand how styles are applied and overridden in CSS. Specificity is calculated based on the types of selectors used and their order of appearance in the stylesheet.

Can CSS selectors be nested?

Yes, CSS selectors can be nested within one another to target elements more precisely. This technique is commonly used in CSS preprocessors like Sass or Less, where nesting helps improve the readability and maintainability of stylesheets.