Detailed explanation of descendant selectors of CSS selectors

小云云
Release: 2018-01-08 10:33:09
Original
2000 people have browsed it

The descendant selector is used to select all descendants of a tag, including children and grandchildren; while the descendant selector only selects the descendant tags of the specified parent (the first generation child elements of the specified tag element). This article mainly introduces the relevant information on the descendant selector of CSS selector in detail. The editor thinks it is quite good, so I will share it with you now and give it as a reference. Let’s follow the editor to take a look, I hope it can help everyone.

The descendant selector uses an extra symbol (angle brackets > ) to indicate the relationship between two elements.

For example: body>h1 selects all the first-generation

tags in the tag.

Relationship diagram of HTML tags

##HTML code


<h1>body里面的h1标题</h1>

<p>
    <h2>p里面的h2</h2>
    <p>
        p里面的p标签,p标签里面有一个<strong><a href="#">加粗的链接</a></strong>
    </p>
</p>

<h2>body里面的h2标题</h2>

<ul>
    <li>列表1
        <ul>
            <li>小列表a</li>
            <li>小列表b</li>
            <li>小列表c</li>
        </ul>
    </li>
    <li>
        <a href="#">列表2(带链接)</a>
    </li>
    <li>
        <a href="#">列表3(带链接)</a>
    </li>
</ul>
Copy after login

After understanding the above structure, you can try the following code:

CSS code


body>h2 {
    color: orange;
}
Copy after login

In the above HTML code, there are a total of 2

tags, but has only one child of

, and the other

is in

inside, so the above CSS code only applies to the first

tag.

The following is a more interesting child selector

:first-child

Select the first A subtag.

CSS code


h2:first-child {
    color: orange;
}
Copy after login

The function of this selector is to first find all

tags in the web page , find its parent element through the

tag, and then determine whether the

tag is ranked first among its parent elements.

Here because the first tag of is

, the child element

of is not affected by the style.

Because

in

is the first child element of

, so the

in

becomes orange.

:last-child

This selector is similar to the :first-child selector, but it selects the last child of an element.

CSS code


li:last-child {
    font-size: 2em;
}
Copy after login

You can see that "Small List C" and "List 3 (with link) "The font size has become larger. Because these two items are the last items specified.

:only-child

Select the only child of an element.

HTML code


<p>
    <p>第一个p的p</p>
</p>
<p>
    <p>第二个p的第一个p</p>
    <a href="#">第二个p的第一个a</a>
</p>
Copy after login

CSS code


p:only-child {
    color: orange;
}
Copy after login

The above styles only apply to the

element of the first

. Since there are not only

elements in the second

, but also an element, the

element of the second

will not be affected by the above style.

This selector is difficult to understand. The style defined by this selector is only effective if the specified tag is the only descendant of another tag. In other words, it is not enough if there is only one specified tag in the descendant. If the specified tag has other sibling tags, the style defined by this selector will be invalid.

:nth-child

This selector is more complicated to use, but it is also particularly useful.

This selector can easily define styles for rows in a table, items two items apart in a list, or other numbers of descendant elements.

This selector requires a value to determine which descendants are selected.

The simplest values ​​are keywords, namely odd and even.

  1. odd is used to select odd-numbered descendant elements.

  2. even is used to select even-numbered descendant elements.

HTML code


<ul>
    <li>1</li>
    <li>2</li>
    <li>3</li>
    <li>4</li>
    <li>5</li>
    <li>6</li>
    <li>7</li>
</ul>
Copy after login
Copy after login

CSS code


li:nth-child(odd) {
    background: pink;
}
li:nth-child(even) {
    background: teal;
}
Copy after login

The subscript of the first child element is 1.

It should be noted that if there are other elements before the first
  • , then the subscript of the first
  • will not be 1.

    For example

    HTML code


    <ul>
        <a href="#">a</a>
        <li>1</li>
        <li>2</li>
        <li>3</li>
        <li>4</li>
        <li>5</li>
        <li>6</li>
        <li>7</li>
    </ul>
    Copy after login
    Copy after login

    The effect at this time is

    li:nth-child(odd) 的意思是找到

  • 元素的父元素,通过父元素来检测每一个
  • 的下标的奇偶。

    因为

  • Related labels:
    source:php.cn
    Statement of this Website
    The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn
    Popular Tutorials
    More>
    Latest Downloads
    More>
    Web Effects
    Website Source Code
    Website Materials
    Front End Template