CSS

CSS nth-child Selector: Selecting Elements with Precision

The CSS nth-child selector targets the nth child element of a parent element based on a specific position, keyword, or formula.

How to Use the CSS nth-child Selector

The CSS nth-child selector, written as :nth-child(n), targets the nth child of a parent element. n can be a specific position, a keyword like odd and even, or an equation like 2n+1.

element:nth-child(n) {
  /* styles go here */
}
  • element: The element to target as the nth child element of a parent element.
  • :nth-child: The selector to target the nth child element of a parent element.
  • n: A position, keyword, or formula to indicate which instance of the element to select.

Basic Usage

/* Select every second paragraph in a parent */
p:nth-child(2n) {
    color: blue;
}

/* Select every third list item */
li:nth-child(3n) {
    background: yellow;
}

/* Select the first element */
div:nth-child(1) {
    border: 1px solid black;
}

When to Use the CSS Selector nth-child

The nth-child selector is useful to style elements based on their position within a parent.

Styling Alternating Rows in Tables

You can use the nth-child selector to style alternating rows in a table for better readability.

table tr:nth-child(odd) {
    background-color: #f2f2f2;
}
table tr:nth-child(even) {
    background-color: #ffffff;
}

Highlighting List Items

To create visual distinction among list items, you can use nth-child to highlight every third item.

ul li:nth-child(3n) {
    font-weight: bold;
    color: red;
}

Customizing Form Fields

With nth-child, you can also style specific form fields differently, which can help guide user input more effectively.

form input:nth-child(4) {
    border: 2px solid green;
}

Examples of Using nth-child in CSS

Responsive Design

In responsive web design, nth-child can help change the layout or appearance of elements based on screen size.

@media (min-width: 600px) {
    .item:nth-child(odd) {
        float: left;
        width: 45%;
    }
    .item:nth-child(even) {
        float: right;
        width: 45%;
    }
}

Theming Webpages

Web pages that need a unique look for different sections often use nth-child to apply varied styles.

section:nth-child(odd) {
    background-color: #e0f7fa;
}
section:nth-child(even) {
    background-color: #ffe0b2;
}

Dynamic Content Styling

Websites with dynamic content, such as blogs, use nth-child to adapt styling as new posts are added.

.article:nth-child(even) {
    margin-bottom: 20px;
}
.article:nth-child(odd) {
    margin-bottom: 30px;
}

Learn More About CSS Child Selectors

Combining with Other Pseudo-classes

The nth-child selector works well with other pseudo-classes and pseudo-elements, enhancing its flexibility.

li:nth-child(2n):hover {
    background: lightgreen;
}

Negative Values in nth-child

You can use negative values to target elements in reverse order. This is useful for targeting elements from the end of a parent element's children.

li:nth-child(-n+3) {
    color: purple;
}

Complex Formulas in nth-child

The nth-child selector supports more complex formulas for advanced selection. This allows for precise targeting of elements based on various patterns.

/* Select every 4th element starting from the 3rd */
li:nth-child(4n+3) {
    font-size: 1.2em;
}

CSS nth-of-type Selector

The nth-of-type selector targets elements based on their position among sibling elements of the same type.

p:nth-of-type(2) {
  font-style: italic;
}

This example styles the second paragraph among its siblings to be italic.

CSS last-child Selector

The last-child selector targets the last child element within a parent. This is helpful for applying styles to the final element in a list or group.

ul li:last-child {
  font-weight: bold;
}

This example makes the last list item bold.

CSS only-child Selector

The only-child selector targets an element that is the only child of its parent. This ensures that the styles apply only when an element is the sole child.

div p:only-child {
  text-align: center;
}

This example centers the text of a paragraph if it is the only child within a div.

Learn to Code in Python for Free
Start learning now
button icon
To advance beyond this tutorial and learn Python by doing, try the interactive experience of Mimo. Whether you're starting from scratch or brushing up your coding skills, Mimo helps you take your coding journey above and beyond.

Sign up or download Mimo from the App Store or Google Play to enhance your programming skills and prepare for a career in tech.

You can code, too.

© 2024 Mimo GmbH